打开文件描述符的方法

打开文件描述符的方法如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
open
creat
openat
creat64 / open64
socket

pipe: 用于创建一个管道,并返回两个文件描述符,分别用于读取和写入。
int pipe(int pipefd[2]);
pipefd 参数是一个整型数组,包含两个文件描述符,pipefd[0] 用于读取数据,pipefd[1] 用于写入数据

dup / dup2: 这些函数用于复制文件描述符。dup() 复制给定的文件描述符,并返回一个新的文件描述符,dup2() 则将给定的文件描述符复制到指定的文件描述符
int dup(int oldfd);
int dup2(int oldfd, int newfd);

memfd_create():在内存中创建一个无名文件,并返回一个文件描述符
int memfd_create(const char *name, unsigned int flags);
name 参数是文件名(仅用于调试目的),flags 参数用于指定标志和选项。成功时返回一个非负整数的文件描述符,失败时返回-1。

eventfd():创建一个用于事件通知的文件描述符。
int eventfd(unsigned int initval, int flags);
initval 参数是初始计数器值,flags 参数用于指定标志和选项。成功时返回一个非负整数的文件描述符

accept():用于接受传入的连接请求,并创建一个新的套接字文件描述符来处理该连接。
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
sockfd 参数是监听套接字的文件描述符,addr 和 addrlen 参数用于接受连接的远程地址。成功时返回一个非负整数的文件描述符,失败时返回-1。

inotify_init():用于初始化一个新的 inotify 实例,并返回一个文件描述符。inotify 是一种文件系统监控机制,可以用于监听文件或目录的变化
int inotify_init(void);
成功时返回一个非负整数的文件描述符,失败时返回-1。

timerfd_create():创建一个用于定时器事件的文件描述符
int timerfd_create(int clockid, int flags);
clockid 参数指定定时器使用的时钟源,flags 参数用于指定标志和选项。成功时返回一个非负整数的文件描述符,失败时返回-1。

等等,太多了