Write()与read()函数在同一个终端行上

时间:2017-09-28 03:49:00

标签: c input terminal output

我目前正在编写一个小型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));
  }

0 个答案:

没有答案