int open(const char *pathname, int flags);
int open(const char *pathname, int flags, mode_t mode);
open函数打开或者创建文件,返回文件描述符
flags为打开文件的方式, O_RDONLY, O_WRONLY, or O_RDWR。
eg2: 创建文件,读写模式
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc,char *argv[])
{
int fd;
fd = open(argv[1],O_CREAT|O_RDWR,0777);
if (fd < 0)
{
printf("create file %s failure\n",argv[1] );
return -1;
}
else
{
printf("create file %s success,fd is %d\n",argv[1],fd );
}
return 0;
}
运行:creae abc
[fwc@localhost ~]$ ls -l abc
-rwxrwxr-x 1 fwc fwc 0 May 26 04:19 abc
[fwc@localhost ~]$ umask
0002
mode &=(~umask)
eg2:读写文件
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
int main(int argc,char *argv[])
{
int fd;
int ret_wr;
int ret_rd;
char buf[] = "hello,world";
char read_buf[128] = {0};
fd = open("a.c",O_TRUNC|O_RDWR);
if (fd < 0)
{
printf("open file failure\n" );
return -1;
}
else
{
printf("open file success,fd is %d\n", fd );
}
ret_wr = write(fd,buf,sizeof(buf));
printf("write %d chars\n",ret_wr );
lseek(fd,0,SEEK_SET);//调整指针位置
ret_rd = read(fd,read_buf,128);
printf("%s\n",read_buf );
return 0;
}