Open & Close

低水準ファイル入出力

                            Name : open
Function : ファイルまたはデバイスのオープン 作成を行う.

#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);

flags:
O_RDONLY : ファイルを読み出し専用で開くことを要求.
O_WRONLY : ファイルを書き込み専用で開くことを要求.
O_RDWR   : ファイルを読み書き両用で開くことを要求.
O_CREAT  : ファイルが存在しない場合作成する.
O_EXCL   : O_CREATと一緒に使用する. ファイルが既に存在した場合エラーになる.
O_TRUNC  : ファイルが既に存在する場合, ファイルの内容を切り詰める.
O_APPEND : 追加モードでオープン. オープン後はファイルポインタはファイルの最後に移動する.
           常に書き込みはファイルの最後に行われる.
                        


Open example

ファイルを開くことを確認するプログラム.

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

int main(int argc, char **argv)
{
    int fd;

    if(argc != 2) {
        fprintf(stderr, "usage: %s Filename\n", argv[0]);
        exit(EXIT_FAILURE);
    }
    if((fd = open(argv[1], O_RDONLY)) != EOF) {
        printf("Open Success\n");
        exit(EXIT_SUCCESS);
    }

    else {
        perror("open");
        exit(EXIT_FAILURE);
    }

    return 0;
}
                            
実行例

$ echo "Sample File" >> test
$ ./oc test
Open Success
$ ./oc sample
open: No such file or directory