我想通过使用文件描述符从文件中读取。由于分配规则,我不能使用它的名字。
我通过调用open
获得它并且它工作正常。此刻我知道我必须使用read()
函数才能从中读取。我的问题是read()
函数需要读取字节数作为参数,我想每次从文件中读取整行,所以我不知道有多少要读取的字节数。
如果我使用例如fscanf()
,它可以使用简单的字符串工作正常,我可以根据需要收回整行。所以我的问题是:
是否有像fscanf()
这样的函数可以使用文件描述符而不是文件指针调用?
答案 0 :(得分:3)
当您说“必须使用read()
”时,我无法判断您是否根据open()
提供的文件描述符或对某种赋值的限制来了解情况。
如果您有文件描述符,但对fscanf()
和朋友更熟悉,请使用fdopen()
从您的fd获取FILE *
并继续使用stdio。
在内部,它将read()
等函数用于缓冲区,然后在用fscanf()
和朋友阅读时处理这些缓冲区。
答案 1 :(得分:2)
你可以做的是一次读一个字符,直到你读完整行,并检测'/ n'。由于这是家庭作业,我不会为你写的。
但有一些事情要警告。