c語言庫(kù)函數(shù)open c語言庫(kù)函數(shù)在哪里查詢

C語言中open函數(shù)如何使用使用

C語言中open函數(shù)

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了納雍免費(fèi)建站歡迎大家使用!

作用:打開和創(chuàng)建文件。

簡(jiǎn)述:

1

2

3

4

#includefcntl.h

intopen(constchar*pathname,intflags);

intopen(constchar*pathname,intflags,mode_tmode);

返回值:成功則返回文件描述符,否則返回-1

對(duì)于open函數(shù)來說,第三個(gè)參數(shù)僅當(dāng)創(chuàng)建新文件時(shí)(即

使用了O_CREAT

時(shí))才使用,用于指定文件的訪問權(quán)限位(access

permission

bits)。pathname

是待打開/創(chuàng)建文件的POSIX路徑名(如/home/user/a.cpp);flags

用于指定文件的打開/創(chuàng)建模式,這個(gè)參數(shù)可由以下常量(定義于fcntl.h)通過邏輯位或邏輯構(gòu)成。

1

2

3

O_RDONLY只讀模式

O_WRONLY只寫模式

O_RDWR讀寫模式

打開/創(chuàng)建文件時(shí),至少得使用上述三個(gè)常量中的一個(gè)。以下常量是選用的:

1

2

3

4

5

6

O_APPEND每次寫操作都寫入文件的末尾

O_CREAT如果指定文件不存在,則創(chuàng)建這個(gè)文件

O_EXCL如果要?jiǎng)?chuàng)建的文件已存在,則返回-1,并且修改errno的值

O_TRUNC如果文件存在,并且以只寫/讀寫方式打開,則清空文件全部?jī)?nèi)容(即將其長(zhǎng)度截短為0)

O_NOCTTY如果路徑名指向終端設(shè)備,不要把這個(gè)設(shè)備用作控制終端。

O_NONBLOCK如果路徑名指向FIFO/塊文件/字符文件,則把文件的打開和后繼I/O

設(shè)置為非阻塞模式

1

(nonblockingmode)

以下三個(gè)常量同樣是選用的,它們用于同步輸入輸出

1

2

3

4

O_DSYNC等待物理I/O結(jié)束后再write。在不影響讀取新寫入的數(shù)據(jù)的

前提下,不等待

文件屬性

更新。

1

2

O_RSYNCread等待所有寫入同一區(qū)域的寫操作完成后再進(jìn)行

O_SYNC等待物理I/O結(jié)束后再write,包括更新文件屬性的I/O

open返回的文件描述符一定是最小的未被使用的描述符。

如果

NAME_MAX(文件名最大長(zhǎng)度,不包括'\0')是

14,而我們想在當(dāng)前目錄下創(chuàng)建文件名長(zhǎng)度超過

14

字節(jié)的文件,早期的

System

V

系統(tǒng)(如

SVR2)會(huì)截?cái)喑霾糠?,只保留?/p>

14

個(gè)字節(jié);而由

BSD

衍生的(BSD-derived)系統(tǒng)會(huì)返回錯(cuò)誤信息,并且把

errno

置為

ENAMETOOLONG。

POSIX.1

引入常量

_POSIX_NO_TRUNC

用于決定是否截?cái)嚅L(zhǎng)文件名/長(zhǎng)路徑名。如果_POSIX_NO_TRUNC

設(shè)定為禁止截?cái)?,并且路徑名長(zhǎng)度超過

PATH_MAX(包括

'\0'),或者組成路徑名的任意文件名長(zhǎng)度超過

NAME_MAX,則返回錯(cuò)誤信息,并且把

errno

置為

ENAMETOOLONG。

c 語言open()函數(shù)

windows下的文件操作,一般都用C語言的文件函數(shù),其中文件打開函數(shù)fopen

fopen函數(shù)用來打開一個(gè)文件,其調(diào)用的一般形式為:

文件指針名=fopen(文件名,使用文件方式)

其中,“文件指針名”必須是被說明為FILE 類型的指針變量,“文件名”是被打開文件的文件名。 “使用文件方式”是指文件的類型和操作要求?!拔募笔亲址A炕蜃址?dāng)?shù)組。例如:

FILE *fp;

fp=("file a","r");

其意義是在當(dāng)前目錄下打開文件file a, 只允許進(jìn)行“讀”操作,并使fp指向該文件。

又如:

FILE *fphzk

fphzk=("c:\\hzk16',"rb")

其意義是打開C驅(qū)動(dòng)器磁盤的根目錄下的文件hzk16, 這是一個(gè)二進(jìn)制文件,只允許按二進(jìn)制方式進(jìn)行讀操作。兩個(gè)反斜線“\\ ”中的第一個(gè)表示轉(zhuǎn)義字符,第二個(gè)表示根目錄。使用文件的方式共有12種,下面給出了它們的符號(hào)和意義。

文件使用方式 意 義

“rt” 只讀打開一個(gè)文本文件,只允許讀數(shù)據(jù)

“wt” 只寫打開或建立一個(gè)文本文件,只允許寫數(shù)據(jù)

“at” 希望在文件內(nèi)追加內(nèi)容,打開一個(gè)文本文件,并在文件末尾寫數(shù)據(jù)

“rb” 只讀打開一個(gè)二進(jìn)制文件,只允許讀數(shù)據(jù)

“wb” 只寫打開或建立一個(gè)二進(jìn)制文件,只允許寫數(shù)據(jù)

“ab” 追加打開一個(gè)二進(jìn)制文件,并在文件末尾寫數(shù)據(jù)

“rt+” 讀寫打開一個(gè)文本文件,允許讀和寫

“wt+” 讀寫打開或建立一個(gè)文本文件,允許讀寫

“at+” 讀寫打開一個(gè)文本文件,允許讀,或在文件末追加數(shù) 據(jù)

“rb+” 讀寫打開一個(gè)二進(jìn)制文件,允許讀和寫

“wb+” 讀寫打開或建立一個(gè)二進(jìn)制文件,允許讀和寫

“ab+” 讀寫打開一個(gè)二進(jìn)制文件,允許讀,或在文件末追加數(shù)據(jù)

C語言中_open函數(shù)和open函數(shù)有什么區(qū)別?

c語言的庫(kù)函數(shù)并沒有open的,,,,open是linux系統(tǒng)提供的api.

_open是c語言庫(kù)函數(shù)。

網(wǎng)頁(yè)標(biāo)題:c語言庫(kù)函數(shù)open c語言庫(kù)函數(shù)在哪里查詢
當(dāng)前鏈接:http://muchs.cn/article18/hheggp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、虛擬主機(jī)、網(wǎng)站收錄、域名注冊(cè)品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)