以下代码给出了分段错误。我还尝试使用malloc
来分配str
。我无法避免分段错误。请帮忙。
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <stdlib.h>
int main() {
int fd = open("/home/pdave/hello2.c", O_RDONLY);
FILE* stream;
stream = fopen("./home/pdave/hello2.c", "r");
char lin[128];
int ret = 0;
int cnt = 0;
char str[128];
while((fgets(str, 128, stream)) != NULL) {
printf("%d\t%d\t%s", cnt, ret, str);
}
}
答案 0 :(得分:3)
您只能使用fopen()
打开文件,因此请删除第一个文件:
int fd = open("/home/pdave/hello2.c", O_RDONLY);
fopen()
函数中的文件路径似乎错了:
stream = fopen("/home/pdave/hello2.c","r");
答案 1 :(得分:1)