读取文本文件的系统调用

时间:2016-06-14 07:40:44

标签: linux operating-system text-files system-calls

所以我有下面的代码,我接受了检查,这两部分并不真正知道如何解决它们。

#define MAX_LINE 4096
char line[MAX_LINE];

fd = open("../.././test.txt". O_RDONLY);
read(fd, line, MAX_LINE);
read(fd, line, MAX_LINE);
  1. 说明给定代码可以读取的最小和最大文本行数。
  2. 将代码更改为完全在文本行上阅读。
  3. 谢谢!

2 个答案:

答案 0 :(得分:1)

  

解释给定代码可以读取的最小和最大文本行数。

最小值为0或分数。如果假定线路终结器单独为\n,则最大值可能为2047或2048;如果为\r\n,则最大值为4096/3 +/- 1;如果允许线路为空,则最大值为4096 假定行终止符为\n。我会说这个问题根本没有说明,并抱怨。

  

将代码更改为完全在文本行上阅读。

同样,这是完全不明确的。如果允许使用stdio(未说明)且不是系统调用,则有多种选择。如果不是,则必须编写循环和字符串连接。

答案 1 :(得分:-1)

我认为fgets()适合读取一行。

#define MAX_LINE 4096
char line[MAX_LINE];

FILE *fp;

fp = fopen("../.././test.txt", "r");
fgets(line, sizeof(line), fp); // read one line