【发布时间】:2015-04-18 23:19:07
【问题描述】:
我有一个读取文件并返回整数的函数。有两个进程使用相同的功能,我遇到了分段错误。
读取函数:
int getNumberFromFile() {
FILE* fp;
char* line;
fp = fopen(fileName, "rb");
fgets (line, 10, fp);
fclose(fp);
return atoi(line);
}
函数用法:
pid_t pid = fork();
if (pid == 0) {
struct process p1;
p1.processId = getpid();
printf("N: %d, PID: %d", getNumberFromFile(), p1.processId);
}
else if (pid > 0 ) {
struct process p2;
p2.processId = getpid();
printf("N: %d, PID: %d", getNumberFromFile(), p2.processId);
}
else {
printf("Error: Could not create process\n");
}
两个不同的进程不能同时读取同一个文件吗?如果不是,我将如何给一个进程优先级,以便其他函数可以在之后执行读取功能?
【问题讨论】:
标签: c process operating-system fork