31基于linux的文件操作
对于linux来说,socket操作与文件操作没有区别
在网络传输数据的过程中,可以使用文件IO函数
demo3创建一个data.txt文件并且写入内容
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int fd;
char buffer[1024];
fd = open("data.txt",O_CREAT|O_RDWR|O_TRUNC);//打开文件
if(fd==-1)
{
perror("open(data.txt)");return -1;
}
printf("文件描述符fd = %d\n",fd);
strcpy(buffer,"哈哈哈哈哈哈\n");
if(write(fd,buffer,strlen(buffer))==-1)
{
perror("write()");return -1;
}
close(fd);
return 0;
}
demo4读取data.txt中的内容
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
int main()
{
int fd;
fd = open("data.txt",O_RDONLY);
if(fd == -1) return -1;
printf("文件描述符fd = %d\n",fd);
char buffer[1024];
memset(buffer,0,sizeof(buffer));
if(read(fd,buffer,sizeof(buffer))==-1) return -1;
printf("%s",buffer);
close(fd);
return 0;
}
运行结果:
在/proc/进程id/fd目录中存放了每隔进程打开的文件描述符,每个进程至少打开了3个文件描述符,0,1,2,标准输入,标准输出,标准错误
文件描述符的分配规则是找到最小的没有被占用的文件描述符。
write和send都是发送数据、
read和recv都是接收数据。

2773

被折叠的 条评论
为什么被折叠?



