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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

open()函数

發布時間:2025/4/14 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 open()函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

STDOUT_FILENO ? ? ? ? ? ?1?標準輸入

STDIN_FILENO ? ? ? ? ? ? 0?標準輸出

STDERR_FILENO ? ? ? ? 2?標準錯誤

?在/proc目錄下的進程文件中,有一個fd的目錄記錄每打開一個文件里面會有一個文件標示文件,名稱以數字開始0 ,1,2....最大好像是65535

包括標準輸入,輸出,錯誤字符設備文件

/dev/pts/1

/dev/pts/1 標準輸出設備1表示第一個ssh遠程連接的編號,

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

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

對于open函數來說,第三個參數僅當創建新文件時(即 使用了O_CREAT 時)才使用,用于指定文件的訪問權限位(access permission bits)。

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

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

O_RDONLY只讀模式 O_WRONLY只寫模式 O_RDWR讀寫模式 上述三種標志位是互斥的,也就是不可同時使用,但可與下列的標志位利用OR(|)運算符組合。 O_CREAT若欲打開的文件不存在則自動建立該文件。 O_EXCL如果O_CREAT也被設置,此指令會去檢查文件是否存在。文件若不存在則建立該文件,否則將導致打開文件錯誤。此外,若O_CREAT與O_EXCL同時設置,并且欲打開的文件為符 ? ? ?號連接,則會打開文件失敗。 O_NOCTTY如果欲打開的文件為終端機設備時,則不會將該終端機當成進程控制終端機。 O_TRUNC若文件存在并且以可寫的方式打開時,此標志位會令文件長度清為0,而原來存于該文件的資料也會消失。 O_APPEND當讀寫文件時會從文件尾開始移動,也就是所寫入的數據會以附加的方式加入到文件后面。 O_NONBLOCK以不可阻斷的方式打開文件,也就是無論有無數據讀取或等待,都會立即返回進程之中。 O_NDELAY同O_NONBLOCK。 O_SYNC以同步的方式打開文件。 O_NOFOLLOW如果參數pathname所指的文件為一符號連接,則會令打開文件失敗。 O_DIRECTORY如果參數pathname所指的文件并非為一目錄,則會令打開文件失敗。

參數mode?

此為Linux2.2以后特有的標志位,以避免一些系統安全問題。參數mode 則有下列數種組合,只有在建立新文件時才會生效, 此外真正建文件時的權限會受到umask值所影響,因此該文件權限應該為(mode-umaks)。 例子:


#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
int main(void)
{

  char a[] = {"abc.txt"};
  int fd = open(a , O_RDONLY);

  if(fd == -1)
  {
    printf("%s\n" , strerror(errno));//判斷open是否成功
  }
  else
  {
    printf("%d\n" , fd);
    close(fd);//打開完畢后記得關閉文件
  }

  return EXIT_SUCCESS;
}

轉載于:https://www.cnblogs.com/yuankaituo/p/4323477.html

總結

以上是生活随笔為你收集整理的open()函数的全部內容,希望文章能夠幫你解決所遇到的問題。

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