日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

linux 打开关闭文件,Linux系统编程-文件打开关闭

發(fā)布時間:2025/4/5 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 打开关闭文件,Linux系统编程-文件打开关闭 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、文件描述符

對于Linux而言,所有對設(shè)備或文件的操作都是通過文件描述符進(jìn)行的。當(dāng)打開或者創(chuàng)建一個文件的時候,內(nèi)核向進(jìn)程返回一個文件描述符(非負(fù)整數(shù))。后續(xù)對文件的操作只需通過該文件描述符,內(nèi)核記錄有關(guān)這個打開文件的信息(file結(jié)構(gòu)體)。

一個進(jìn)程啟動時,默認(rèn)打開了3個文件,標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤,對應(yīng)文件描述符是0(STDIN_FILENO)、1(STDOUT_FILENO)、2(STDERR_FILENO),這些常量定義在unistd.h頭文件中。

另外介紹下面兩個函數(shù):

fileno:將文件指針轉(zhuǎn)換為文件描述符

fdopen:將文件描述符轉(zhuǎn)換為文件指針

二、什么是I/O

輸入/輸出是主存和外部設(shè)備之間拷貝數(shù)據(jù)的過程

設(shè)備->內(nèi)存 (輸入操作)

內(nèi)存->設(shè)備 (輸出操作)

高級I/O

ANSI C提供的標(biāo)準(zhǔn)I/O庫稱為高級I/O,通常也稱為帶緩沖的I/O

低級I/O

通常也稱為不帶緩沖的I/O

三、文件的打開關(guān)閉

open系統(tǒng)調(diào)用1:

函數(shù)原型

int open(const char *path, int flags);

參數(shù)

path :文件的名稱,可以包含(絕對和相對)路徑

flags:文件打開模式

返回值:

打開成功,返回文件描述符;打開失敗,返回-1

open系統(tǒng)調(diào)用2:

函數(shù)原型

int open(const char *path, int flags,mode_t mode);

參數(shù)

path :文件的名稱,可以包含(絕對和相對)路徑

flags:文件打開模式

mode: ?用來規(guī)定對該文件的所有者,文件的用戶組及系?統(tǒng)中其他用戶的訪問權(quán)限

返回值:

打開成功,返回文件描述符;打開失敗,返回-1

下面是文件打開的模式:

O_RDONLY打開一個供讀取的文件

O_WRONLY打開一個供寫入的文件

O_RDWR打開一個可供讀寫的文件

O_APPEND寫入的所有數(shù)據(jù)將被追加到文件的末尾

O_CREAT打開文件,如果文件不存在則建立文件

O_EXCL如果已經(jīng)置O_CREAT且文件存在,則強(qiáng)制open() 失敗

O_TRUNC在open() 時,將文件的內(nèi)容清空

O_CLOEXEC 在進(jìn)行exec進(jìn)程替換時關(guān)閉打開的文件描述符。

Specifying this flag permits a program to avoid additional ?fcntl(2) F_SETFD operations to set the FD_CLOEXEC flag.

O_NONBLOCK 非阻塞模式

總結(jié)

以上是生活随笔為你收集整理的linux 打开关闭文件,Linux系统编程-文件打开关闭的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。