Bootstrap

Linux文件创建(一)

linux加粗样式
一、文件:
如何用代码创建文件,实现文件创建打开,编辑等自动化执行
二、 原理:
1、Linux内核对文件的管理机制;
2、Linux内和对驱动的管理机制;

三、Linux系统提供的API;
1、打开 OPEN;
2、读写 WRITE/READ;
3、光标定位 LSEEK;
4、关闭 CLOSE;
四、打开文件:
open:返回值是文件描述符

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

       int creat(const char *pathname, mode_t mode);	

flags
O_RDOWLY:只读写打开 4
O_WRQNLY:只写打开 2
O_RDWR: 可读可写打开 1
五、实例
当目录下有file1文件时:
代码:

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

int main()
{
        int fd;

        fd = open("./file1", O_RDWR);
        printf("fd = %d\n",fd);
        return 0;
}

执行编译后结果:

CLC@Embed_Learn:~$ gcc demo1.c
CLC@Embed_Learn:~$ ./a.out
fd = 3`

当目录下没有file1时执行编译后的结果为:

CLC@Embed_Learn:~$ ./a.out
fd = -1

判断是否有file1文件并创建
代码

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

int main()
{
        int fd;

        fd = open("./file1", O_RDWR);
        if(fd = -1){
                printf("file1 open failed\n");
        }
        fd = open("./file1", O_RDWR | O_CREAT,0600);
        if(fd > 0){
                printf("file1 creat success\n");
        }
        return 0;
}

执行编译后结果:

CLC@Embed_Learn:~$ ./a.out
file1 open failed
file1 creat success
;