程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> unix c中的fcntl函數fcntl(fd,F_GETFL,0)-CSDN問答

unix c中的fcntl函數fcntl(fd,F_GETFL,0)-CSDN問答

編輯:編程綜合問答
unix c中的fcntl函數fcntl(fd,F_GETFL,0)

看到書上有這句話(不懂):
F_GETFL 對應於filedes 的文件狀態標志作為函數值返回。在說明 open函數時,已說明了文件狀態標志 不幸的是,三個存取方式標志 (O_RDONLY,O_WRONLY,以及O_RDWR)並不各占1位。(正如前述,這三種標志的值各是 0、1和2,由於歷史原因。這三種值互斥 — 一個文件只能有這三種值之一。 )因此首先必須用屏蔽字 O_ACCMODE相與 取得存取方式位,然後將結果與這三種值相比較。
fcntl(fd,F_GETFL,0)操作返回的結果是什麼???
代碼測試:返回不懂
/**
fcntl——manipulate(/məˈnɪpjʊleɪt;) file descriptor
**/

#include
#include
#include
#include
#include

int main(){

int fd;
int power;

if((fd = open("/home/hq/example/mydocs/linux",O_RDONLY | O_CREAT)) == -1){
    printf("open failed!\n");
    return 0;
}
//得到進程文件的描述符標志
if((power = fcntl(fd,F_GETFL,0)) ==-1){
    printf("fcntl failed!\n");
    return 0;
}
printf("%d--\n",power);

return 0;

}

最佳回答:


fcntl()用來操作文件描述符的一些特性。fcntl 不僅可以施加建議性鎖,還可以施加強制鎖。同時,fcntl還能對文件的某一記錄進行上鎖,也就是記錄鎖。
cntl的返回值與命令有關。如果出錯,所有命令都返回-1,如果成功則返回某個其他值。下列四個命令有特定返回值:F_DUPFD、F_GETFD、F_GETFL、F_GETOWN.第一個返回新的文件描述符,接下來的兩個返回相應標志,最後一個返回一個正的進程ID或負的進程組ID。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved