Я застрял на этом. В настоящее время я использую:
FILE *a = fopen("sample.txt", "r");
int n;
while ((n = fgetc(a)) != EOF) {
putchar(n);
}
Однако этот метод кажется немного неэффективным. Есть ли лучший способ? Я пытался использовать fgets:
char *s;
fgets(s, 600, a);
puts(s);
Есть одна вещь, которую я нахожу неправильной в этом втором методе, это то, что вам потребуется действительно большое число для второго аргумента fgets.
Спасибо за все предложения. Я нашел способ (кто-то в IRC сказал мне это), используя open (), read () и write ().
char *filename = "sample.txt";
char buf[8192];
int r = -1;
int in = open(filename, O_RDONLY), out = 0;
if (in == -1)
return -1;
while (1) {
r = read(in, buf, sizeof(buf));
if (r == -1 || r == 0) { break; }
r = write(out, buf, r);
if (r == -1 || r == 0) { break; }
}