我正在嘗試部分讀取輸入,直到輸入新行“\n”。但是我怎么能用 read() 函式做到這一點呢?現在我已經進行了部分讀取,直到終端界面注銷并停止輸入(在 linux 終端上按 ctrl d),但不知道如何在輸入新行時停止。這是我的代碼:
int fd = 0;
const size_t read_size = 100;
size_t size = read_size;
char *buff = malloc(size 1);
size_t offset = 0;
size_t res = 0;
while((res = read(fd, buff offset, read_size)) > 0)
{
offset = res;
buff[offset] = '\0';
if (offset read_size > size)
{
size *= 2;
buff = realloc(buff, size 1);
}
}
return buff;
uj5u.com熱心網友回復:
我正在嘗試部分讀取輸入,直到輸入新行“\n”。但是我怎么能用 read() 函式做到這一點呢?
使用 a 實作此目的的唯一方法read是一次讀取一個字符。讀完'\n'角色后,停下來。
我如何檢查正在閱讀的內容?
while (read(fd, buf offset, 1) == 1) {
if (buf[offset] == '\n') break;
offset = 1;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/393254.html
下一篇:C|在宏函式中處理多個引數
