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);
创建文件
int fd;
fd=creat("/home/xin/桌面/file2",0700);
打开文件
int fd;
fd=open("./file2",O_RDWR);
fd= open("./file2",O_RDWR|O_CREAT,0700);
写入文件
#include <unistd.h>
write(fd,buf,strlen(buf));
close(fd);
读取
#include <unistd.h>
read(fd,buf,strlen(buf));
实例
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int fd;
char *buf="中国好,好中国!";
fd=open("./file2",O_RDWR);
if(fd<0){
printf("打开file2失败,fd=%d\n",fd);
fd=open("./file2",O_RDWR|O_CREAT,0600);
if(fd>=0){
printf("打开file2成功,fd=%d\n",fd);
}
}
int n_write= write(fd,buf,strlen(buf));
if(n_write!=-1){
printf("写入成功!,%dbyte\n",n_write);
}
close(fd);
fd=open("./file2",O_RDWR);
char *readbuf=(char *)malloc(strlen(buf+1));
memset(readbuf,'\0',strlen(buf+1));
int n_read=read(fd,readbuf,strlen(buf));
if(n_read!=0){
printf("%d,%s\n",n_read,readbuf);
}
return 0;
}