0
如何驗證C中的標準輸入是否爲空? 我有一個學校的項目,我們只允許使用malloc,寫入,閱讀和免費,但唯一的解決方案,我在網上找到使用功能,我不允許使用。 除非您在輸入中沒有放入任何東西,否則我的閱讀完美無缺。如果讀取0爲空,則返回null
這裏是我的代碼:
char *ft_get_buffer(void)
{
char buf[10];
int ret;
int count;
char *result;
count = 0;
result = "";
while (1)
{
ret = read(0, buf, 10);
count += ret;
if (ret < 10)
{
buf[ret] = '\0';
result = ft_ralloc(buf, result, count);
break ;
}
else
result = ft_ralloc(buf, result, count);
}
return (result);
}
回聲 「測試」 | ./mybinary //正常工作
echo ./mybinary //無限循環
該程序很快在[Wandbox](http://melpon.org/wandbox/permlink/0VH7sPB6aFUkoqiO)上禁用了'ft_ralloc'。嘗試通過打印'ret'來調試,或者麻煩可能在'ft_ralloc'中。 – MikeCAT
如果存在I/O錯誤,則read()返回-1。想想這個。你的代碼在這種情況下做了什麼? – Gene
你試過'回聲測試「| 。/ mybinary'與'test'大小爲'0'? – alk