我目前正在编写一个小型POSIX终端模拟器以了解有关C的更多信息。 我写完了一个带有几个内置函数(env,exit等)的工作终端,现在想要使用链表实现自动完成功能。
为了做到这一点,我需要能够在与我正在使用的write()
函数相同的行上使用read()
函数。
但是我似乎只能在下一个终端线上这样做 - 我可能错过了一些非常明显无法找到它的东西。我尝试加入我用“\ r”获得的字符串,但它没有用。
这是我写的:
#include "./libft/libft.h"
#include <unistd.h>
int main()
{
char *buf;
char *result;
int ret;
ret = 1;
buf = ft_strnew(0);
result = NULL;
while (ret == 1)
{
ret = read(0, buf, 1);
ft_putstr_fd(buf, 0);
ft_bzero(buf, 1);
}
return (0);
}
这是我的ft_putstr_fd函数:
#include "include/libft.h"
void ft_putstr_fd(char const *s, int fd)
{
write(fd, s, ft_strlen(s));
}