我写了一个C程序。(页面底部的问题)我可以提供实际代码,但我认为没有必要回答这个问题。
Used a while loop with fgets to get sizeof line
Assigned that fgets to line[255] in the fgets
Assigned the line to a char* (inside the loop)
Printf the char* (also inside the loop)
C 程序按预期输出。
我使用 strace -o x.txt ./a.out 来查看幕后发生的事情。
我看到了:(当然上面/下面还有很多乱码,我不明白)
read(3, "text\nMore text\nEven more text"..., 4096) = 72
write(1, "text\n",5) = 5
... more of the write() = #
read(3, "", 4096) = 0
close(3)
问题:
我得到
write(1=stdout, "text to print", #of char)
或者是这个字节#?我不明白
read(3, "", 4096) = 0
我知道0=stdin
, 1=stdout
, 2=stderr
, 不知道 3 是什么意思 - 也许这是文件?我不知道它为什么要进行另一次读取,我假设 4096 的缓冲区大小是多少?我最好的猜测是,因为它说 = 0 因为它的 EOF ?