日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

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

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

一、文件描述符

對于Linux而言,所有對設備或文件的操作都是通過文件描述符進行的。當打開或者創建一個文件的時候,內核向進程返回一個文件描述符(非負整數)。后續對文件的操作只需通過該文件描述符,內核記錄有關這個打開文件的信息(file結構體)。

一個進程啟動時,默認打開了3個文件,標準輸入、標準輸出、標準錯誤,對應文件描述符是0(STDIN_FILENO)、1(STDOUT_FILENO)、2(STDERR_FILENO),這些常量定義在unistd.h頭文件中。

另外介紹下面兩個函數:

fileno:將文件指針轉換為文件描述符

fdopen:將文件描述符轉換為文件指針

二、什么是I/O

輸入/輸出是主存和外部設備之間拷貝數據的過程

設備->內存 (輸入操作)

內存->設備 (輸出操作)

高級I/O

ANSI C提供的標準I/O庫稱為高級I/O,通常也稱為帶緩沖的I/O

低級I/O

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

三、文件的打開關閉

open系統調用1:

函數原型

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

參數

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

flags:文件打開模式

返回值:

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

open系統調用2:

函數原型

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

參數

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

flags:文件打開模式

mode: ?用來規定對該文件的所有者,文件的用戶組及系?統中其他用戶的訪問權限

返回值:

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

下面是文件打開的模式:

O_RDONLY打開一個供讀取的文件

O_WRONLY打開一個供寫入的文件

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

O_APPEND寫入的所有數據將被追加到文件的末尾

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

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

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

O_CLOEXEC 在進行exec進程替換時關閉打開的文件描述符。

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

O_NONBLOCK 非阻塞模式

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。