gpt4 book ai didi

c - 读取将循环文件结尾

转载 作者:太空宇宙 更新时间:2023-11-04 03:43:13 25 4
gpt4 key购买 nike

我正在编写一个 C 代码,它将读取文件的内容并将其输出到终端。到目前为止,这是我的代码:

rdfd = open(address, O_RDONLY);
read(rdfd, reader, 1);
while(rdfd != 0){ //will end if EOF is reached
for(x=0; x<1; x++) printf("%c", reader[x]); //for printing at the terminal
read(rdfd,reader,1);
}

现在,举个例子,我有一个包含 ff 内容的 index.html 文件:

<html>
<body><h1>HELLO WORLD</h1></body>
</html>

程序将打印如下内容:

<html>
<body><h1>HELLO WORLD</h1></body>
</html>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> (...)

> 会无限地继续下去。我不知道为什么。 while 条件有问题吗?

最佳答案

rdfd 是您正在读取的文件的文件描述符。测试它是否为零 (while(rdfd != 0) 实际上没有做任何有用的事情。如果你想测试文件是否被正确打开(你应该)测试是否为 < 0。

如果您想知道何时到达文件末尾,请检查 read 调用的返回值,即:

int bytesRead = read(rdfd, reader, 1);

while (bytesRead > 0)
{ ...
bytesRead = read(rdfd,reader,1);
}

关于c - 读取将循环文件结尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com