我想從txt文件中讀取數據並在其中附加下一個數字,我也想使用fork來作爲第二個進程。在下面的代碼中,我需要幫助來解鎖文件。我無法解鎖文件。如何使用lockf()解鎖?
int main() {
int x;
pid_t child = fork();
FILE *file;
//flock(fileno(file),LOCK_EX);
file = fopen ("list.txt", "r");
//printf("file is locked");
int fdSource = (int)file;
if (fdSource > 0){
if (lockf(fdSource, F_LOCK, 0) == -1)
x = readValue(file);
return 0; /* FAILURE */
}
else {
return 1;
}
if (lockf(fdSource, F_ULOCK, 0) == -1){
printf("file is not lock");
appendValue(x);
}
else {
return 1;
}
appendValue(x);
}
'INT fdSource =(int)的文件;'是不正確的。看看'fileno(3)'的手冊頁。 – Mat 2012-07-21 16:45:05
謝謝,但如果之前不使用(int)我得到錯誤,並建議投它 – user1542921 2012-07-21 16:49:34
鑄造刪除警告是在C的99.999999%的情況下的一個大錯誤。使用我上面提到的功能得到一個文件描述符來自'FILE *'。 – Mat 2012-07-21 16:50:59