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