linux判断文件写入完毕,linux文件编程——系统调用(打开、写入、读取、访问判断)...
linux文件編程有兩個方法:1、linux系統調用 2、C語言函數庫
前者依賴的是linux系統,后者獨立于操作系統而存在,不依賴于任何操作系統,因此,在不同的操作用使用C語言函數庫的方法是一樣的。
linux系統調用:
創建文件使用creat函數
函數原型:int creat(文件路徑,創建模式)
常見創建模式:
S_IRUSR 文件可讀
S_IWUSR 文件可寫
S_IXUSR 文件可執行
S_IRWXU 文件可讀可寫可執行
也可以用數字來表示操作模式:1——可執行 2——可寫 4——可讀 0——無任何權限 6——可讀可寫
打開文件使用open函數
函數原型:int open(要打開的文件名包含路徑,打開標志)
int open(要打開的文件名包含路徑,打開標志,文件訪問權限)
open函數成功打開一個文件后會返回一個文件描述符,打開失敗則返回-1
打開標志:
O_RDONLY 以只讀方式打開文件
O_WRONLY 以只寫方式打開文件
O_RDWR 以讀寫方式打開文件
O_CREAT 當要打開的文件不存在時,創建這個文件
O_NONBLOCK 以無阻塞方式打開文件
注意:當使用O_CREAT標志時,open 函數就需要使用第二個函數原型,即: int open(要打開的文件名包含路徑,打開標志,文件訪問權限) 第三個參數用于創建文件時設定文件的權限。
關閉文件使用close函數
函數原型:int close(文件描述符)
讀取文件內容使用read函數
函數原型:int read(文件描述符,存放數據的緩沖區,讀取數據的字節數)
read函數會從文件描述符指向的文件中讀取指定的字節數,并存放在緩沖區中
判斷文件的訪問權限用access函數
函數原型:int access(文件路徑,模式)
模式:R_OK 判斷文件是否可讀
W_OK 判斷文件是否可寫
F_OK 判斷文件是否存在
X_OK 判斷文件是否可執行
當判斷成功時,函數返回0,不成功時返回-1
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #define FIFE "/home/book/c_code/test_fife"
9
10 int main(int argc,char **argv)
11 {
12 int fd; //文件描述符
13 char buf[40]; //緩沖區
14
15 memset(buf,0,sizeof(buf));
16
17 if (access(FIFE,F_OK)!=0) {
18 creat(FIFE,0666);
19 }
20
21 fd = open(FIFE,O_RDWR); //打開文件
22 write(fd,"hello world",12); //寫數據
23 close(fd);
24 fd = open(FIFE,O_RDWR);
25 read(fd,buf,12); //讀數據
26
27 printf("read %s from fife\n",buf);
28
29 return 0;
30 }
運行效果
注意:在write函數后必須關閉文件描述符,再使用read函數。如果在寫函數后直接使用讀函數,將不會讀取到數據。
yohe12
發布了17 篇原創文章 · 獲贊 0 · 訪問量 1170
私信
關注
標簽:文件,include,函數,int,編程,linux,打開,open,讀取
來源: https://blog.csdn.net/yohe12/article/details/104124621
總結
以上是生活随笔為你收集整理的linux判断文件写入完毕,linux文件编程——系统调用(打开、写入、读取、访问判断)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在linux操作系统中启动oracle数
- 下一篇: 支付宝掌纹支付功能曝光,正在加速研发追赶