我想使用文件描述符从文件中读取。由于分配规则,我不能使用它的名字。
我通过调用获得它open
,它工作正常。此刻我知道我必须使用该read()
函数才能从中读取。我的问题是该函数需要读取的字节数read()
作为参数,并且我想每次从文件中读取一整行,所以我不知道要读取多少字节。
例如fscanf()
,如果我使用它,它可以很好地处理一个简单的字符串,我可以根据需要收回整行。所以我的问题是:
有没有fscanf()
可以用文件描述符而不是文件指针调用的函数?
我想使用文件描述符从文件中读取。由于分配规则,我不能使用它的名字。
我通过调用获得它open
,它工作正常。此刻我知道我必须使用该read()
函数才能从中读取。我的问题是该函数需要读取的字节数read()
作为参数,并且我想每次从文件中读取一整行,所以我不知道要读取多少字节。
例如fscanf()
,如果我使用它,它可以很好地处理一个简单的字符串,我可以根据需要收回整行。所以我的问题是:
有没有fscanf()
可以用文件描述符而不是文件指针调用的函数?
当您说“必须使用read()
”时,我无法判断这是否是您对给定文件描述符open()
或对某种分配的限制的情况的理解。
如果你有一个文件描述符,但你更喜欢fscanf()
和朋友,使用从你的 fdfdopen()
中获取 aFILE *
并继续使用 stdio。
在内部,它使用像read()
缓冲区这样的函数,然后在您fscanf()
与朋友阅读它们时处理这些缓冲区。
你可以做的是一次读一个字符,直到你读完整行,然后检测到'/n'。因为这是作业,我就不给你写了。
然而,有几件事需要注意。