Linux中,socket 也是被认为是文件的一种
window中,需要区分socket和文件
- 文件描述符:window中叫文件句柄;可以理解成分配的ID
- socket经过创建的过程中才会被分配文件描述符
文件操作
- 打开文件
int open(const char *path, int flag)
,flag是打开的模式,多个模式用OR连接,返回的就是文件描述符。(#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>) - 关闭文件
int close(int fd)
,这个同样可以关闭socket。(#include <unistd.h>) - 将数据写入文件:
ssize_t write(int fd, const void *buf, size_t nbytes);
,(#include <unistd.h>) - size_t 是 unsigned int,ssize_t 是 signed int
读写文件操作
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/stat.h>
void error_handling(char *message);
int main(void)
{
int fd;
char buf[] = "Let's go! \n";
// 设置权限
umask(0000);
if(creat("data.txt", 0777) ==