1.创建新文件并保存数据。
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
void error_handling(char * message);
int main(void)
{
int fd;
char buf[]="Let's go!\n";
fd=open("data.txt",O_CREAT|O_WRONLY|O_TRUNC);
if(fd==-1)
error_handling("open() error!");
printf("file descriptor: %d\n",fd);
if(write(fd,buf,sizeof(buf))==-1)
error_handling("write() error!");
close(fd);
return 0;
}
void error_handling(char * message)
{
fputs(message,stderr);
fputc('\n',stderr);
exit(1);
}
fd=open("data.txt",O_CREAT|O_WRONLY|O_TRUNC);
int open(const char *path,int flag);
O_CREAT:必要时创建文件
O_TRUNC:删除全部现有数据
O_WRONLY:只写打开
结果:
2.读取文件中的数据。
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#define BUF_SIZE 100
void error_handling(char * message);
int main(void)
{
int fd;
char buf[BUF_SIZE];
fd=open("data.txt",O_RDONLY);
if(fd==-1)
error_handling("open() error!");
printf("file descriptor: %d \n",fd);
if(read(fd,buf,sizeof(buf))==-1)
error_handling("read() error!");
printf("file data: %s",buf);
close(fd);
return 0;
}
void error_handling(char *message)
{
fputs(message,stderr);
fputc('\n',stderr);
exit(1);
}
3.文件描述符与套接字
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/socket.h>
int main()
{
int fd1,fd2,fd3;
fd1=socket(PF_INET,SOCK_STREAM,0);
fd2=open("test.dat",O_CREAT|O_WRONLY|O_TRUNC);
fd3=socket(PF_INET,SOCK_DGRAM,0);
printf("file descriptor 1: %d\n",fd1);
printf("file descriptor 2: %d\n",fd2);
printf("file descriptor 3: %d\n",fd3);
close(fd1);
close(fd2);
close(fd3);
return 0;
}