【发布时间】:2014-10-19 17:53:23
【问题描述】:
我有一个由换行符分隔的整数文件,例如:
277
123
456
.
.
.
等等
我可以使用 read() Linux 系统调用(例如
)读取文件内容并将其存储在数组缓冲区中// open the file
fileDesc = open(filename,O_RDONLY);
// read the file if it opened successfully
read(fileDesc, buffer, MAX_BUFF_SIZE)
我还有更多内容,但是当我使用 printf(%c 格式)查看缓冲区的内容时,它会将文件内容存储为,
缓冲区[0] = 2
缓冲区[1] = 7
缓冲区[2] = 7
缓冲区[3] =
缓冲区[4] = 1
缓冲区[5] = 2
缓冲区[6] = 3
.
.
等等
我真的希望每个缓冲区索引在每个 \n 之前保存一个完整的值,例如
缓冲区[0] = 277
缓冲区[1] = 123
缓冲区[2] = 456
.
.
等等
有什么方法可以控制 read() 系统调用将文件内容存储到缓冲区中的方式吗?还是有更好的替代方法来完成这项任务?
谢谢。
【问题讨论】:
-
解析内容并不难,但使用 stdio (fopen/ fgets / fscanf) 可能更容易
标签: c linux unix system-calls readfile