2socket编程

socket基础

文件操作

int open(const char *path, int flag);

  • flag文件打开模式,如O_CREATE|O_TRUNC|O_RDONLY
    • O_CREATE:必要时创建文件
    • O_TRUNC:删除全部数据
    • O_APPEND
    • O_RDONLY
    • O_WRONLY
    • O_RDWR
  • ......

3并发服务器

[TOC]

多进程服务器端

处理僵尸进程

#include
pid_t wait(int* statloc);

  • 成功时返回终止的子进程ID,失败时返回-1
  • statloc包含返回信息
  • 使用时通过宏对返回信息进行分离 ......

4标准IO及IO流分离

[TOC]

标准IO

与系统函数相比

  • 优点
    • 可移植性更强
    • 效率更高
  • 缺点
    • 不容易进行双向通信
    • 有时可能频繁调用fflush函数
    • 需要以FILE结构体指针的形式返回fd

fd--->FILE结构体指针
include
FILE* fdopen(int fd, const char* mode);

  • fd需要转换的fd
  • mode将要创建的FILE结构体指针的模式信息
      ......

5epoll

[TOC]

epoll系列函数

#include
int epoll_create(int size);

  • size指epoll实例的大小
  • 成功时返回epoll文件描述符,失败时返回-1

调用epoll_create函数时创建的fd保存空间称为“epoll例程”
通过size参数决定例程的大小,但这只是向操作系统提的“建议”(Linux2.6.8后该参数将被完全忽略)

......
关于我
zinkt
西南大学2019级本科生
zinkt@foxmail.com
前端基于bootstrap5
后端使用gink&ginkorm
基于它们构建的一个个人博客系统