システムコールLinxu ---オープン機能(詳細)

ここではセクション番号があるのmanページ
ここに画像を挿入説明
、当社のシステム機能は、manページで照会することができますman 2 open

オープン関数

//头文件:
       #include<fcntl.h>
       #include<sys/types.h>
       #include<sys/stat.h>
//功能:打开和创建文件(建立一个文件描述符,其他的函数可以通过文 件描述符对指定文件进行读取与写入的操作。)

プロトタイプ

int open(const char*pathname,int flags);  //文件存在
int open(const char*pathname,int flags,mode_t mode);//文件不存在
参数说明:
1.pathname
  要打开或创建的目标文件
2.flags
  打开文件时,可以传入多个参数选项,用下面的
  一个或者多个常量进行“或”运算,构成falgs
  参数:
  O_RDONLY:   只读打开
  O_WRONLY:   只写打开
  O_RDWR:     读,写打开
这三个常量,必须指定一个且只能指定一个,面的参数是可选的。
  O_CREAT:    若文件不存在,则创建它,需要使
              用mode选项。来指明新文件的访问权限
  O_APPEND:   追加写,如果文件已经有内容,这次打开文件所
              写的数据附加到文件的末尾而不覆盖原来的内容
 3.mode
   用来设置创建文件的权限(rwx)。当flags中带有O_CREAT时才有效。
   标志	            说明	                         标志	               说明	                            标志	         说明
S_IRUSR 	文件属主可读  	S_IRGRP	     文件所在组可读  	S_IROTH	其他用户可读
S_IWUSR	    文件属主可写	            S_IWGRP	     文件所在组可写	        S_IWOTH	其他用户可写
S_IXUSR	    文件属主可执行	        S_IWOTH	     文件所在组可执行	    S_IXOTH	其他用户可执行

 4.返回值:
   调用成功时返回一个文件描述符fd
   调用失败时返回-1,并修改errno

例えば

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
    int fd;
    //hello.c已存在
    fd = open("hello.c",O_RDWR);
    if(fd == -1){
        perror("open file");
        exit(1);
    }

    close(fd);
}
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
    int fd;
    //myhello.c文件不存在  权限777
    fd = open("myhello.c",O_RDWR | O_CREAT,0777);
    if(fd == -1){
        perror("open file");
        exit(1);
    }

    close(fd);
}

ファイルが開いているパラメータに存在しない場合は、ファイルのアクセス権を作成し、ローカルマスクと組み合わせる必要実際のファイルのアクセス権はありません。上記の例Myhello.c:
あなたは、ファイルのパーミッションは777で作成すると、実際は
ここに画像を挿入説明
許可=&ローカルマスク(反転)与えられた実際のファイルのパーミッション
ローカルマスク:表示するには、umaskコマンド
ここに画像を挿入説明
myhello.c上記の実際のファイルのパーミッションを=(111111111 )&(〜(000010010))= 111 101 101

参考ます。https://blog.csdn.net/dangzhangjing97/article/details/79631173

公開された37元の記事 ウォン称賛35 ビュー3576

おすすめ

転載: blog.csdn.net/qq_43799957/article/details/105177644