0
点赞
收藏
分享

微信扫一扫

syscall常量解释(持续完善中)

自由的美人鱼 2022-01-27 阅读 60

目录


套接字地址族

  • AF_ALG:
  • AF_APPLETALK:
  • AF_ASH:
  • AF_ATMPVC:
  • AF_ATMSVC:
  • AF_AX25:
  • AF_BLUETOOTH:
  • AF_BRIDGE:
  • AF_CAIF:
  • AF_CAN:
  • AF_DECnet:
  • AF_ECONET:
  • AF_FILE:
  • AF_IEEE802154:
  • AF_INET: IPV4因特网域
  • AF_INET6: IPV6因特网域
  • AF_IPX: NetWare 协议族
  • AF_IRDA:
  • AF_ISDN:
  • AF_IUCV:
  • AF_KEY:
  • AF_LLC:
  • AF_LOCAL: 使用文件系统本地的UNIX域套接字
  • AF_MAX:
  • AF_NETBEUI:
  • AF_NETLINK:
  • AF_NETROM:
  • AF_PACKET:
  • AF_PHONET:
  • AF_PPPOX:
  • AF_RDS:
  • AF_ROSE:
  • AF_ROUTE:
  • AF_RXRPC:
  • AF_SECURITY:
  • AF_SNA:
  • AF_TIPC:
  • AF_UNIX: UNIX域
  • AF_UNSPEC: 可以代表“任何”域
  • AF_WANPIPE:
  • AF_X25:



文件锁(Flock)

  • F_GETLK: 判断锁是否会被另外一把锁所排斥(阻塞)
  • F_GETLK64:
  • F_SETLK: 设置锁
  • F_SETLKW: 此命令也用来清除锁
  • F_SETLKW64:
  • F_RDLCK: 共享读锁
  • F_TLOCK:
  • F_ULOCK:
  • F_UNLCK: 解锁
  • F_WRLCK: 独占性写锁
  • F_EXLCK:
  • F_LOCK:
  • F_SETLK64:
  • F_SHLCK:



文件描述符操作标志

  • FD_CLOEXEC: 用来控制在执行 exec 后,是否关闭对应的文件描述符
  • FD_SETSIZE: 最大的文件描述符数量
  • F_DUPFD: 复制文件描述符fd
  • F_DUPFD_CLOEXEC: 复制文件描述符,设置与新描述符关联的FD_CLOEXEC文件描述符标志的值,返回新文件描述符
  • F_GETFD: 对应于fd的文件描述符标志作为函数值返回
  • F_GETFL: 获得获得/设置文件状态标志文件状态标志
  • F_GETLEASE:
  • F_GETOWN: 获取当前接收SIGIO和SIGURG信号的进程ID或进程组ID
  • F_GETOWN_EX:
  • F_GETPIPE_SZ:
  • F_GETSIG:
  • F_NOTIFY:
  • F_OK: 文件是否存在
  • F_SETFD: 设置文件描述符标志
  • F_SETFL: 设置文件状态标志
  • F_SETLEASE:
  • F_SETOWN: 设置接收SIGIo和SIGURG信号的进程ID或进程组ID
  • F_SETOWN_EX:
  • F_SETPIPE_SZ:
  • F_SETSIG:
  • F_TEST:



因特网域套接字定义的协议

  • IPPROTO_AH:
  • IPPROTO_COMP:
  • IPPROTO_DCCP:
  • IPPROTO_DSTOPTS:
  • IPPROTO_EGP:
  • IPPROTO_ENCAP:
  • IPPROTO_ESP:
  • IPPROTO_FRAGMENT:
  • IPPROTO_GRE:
  • IPPROTO_HOPOPTS:
  • IPPROTO_ICMP: 因特网控制报文协议
  • IPPROTO_ICMPV6:
  • IPPROTO_IDP:
  • IPPROTO_IGMP:
  • IPPROTO_IP: IPv4网际协议
  • IPPROTO_IPIP:
  • IPPROTO_IPV6: IPv6网际协议
  • IPPROTO_MTP:
  • IPPROTO_NONE:
  • IPPROTO_PIM:
  • IPPROTO_PUP:
  • IPPROTO_RAW: 原始IP数据包协议
  • IPPROTO_ROUTING:
  • IPPROTO_RSVP:
  • IPPROTO_SCTP:
  • IPPROTO_TCP: 传输控制协议
  • IPPROTO_TP:
  • IPPROTO_UDP: 用户数据报协议
  • IPPROTO_UDPLITE:



建议性锁操作类型

  • LOCK_EX: 排他锁,同时只允许一个进程使用,常被用作写锁
  • LOCK_NB: 尝试上锁时系统就不会阻塞该进程,返回错误码为EWOULDBLOCK。
  • LOCK_SH: 共享锁,多个进程可以使用同一把锁,常被用作读共享锁
  • LOCK_UN: 释放锁



内存空间的使用建议

如何使用某些映射或者共享内存区域

  • MADV_CAN_REUSE:
  • MADV_DONTNEED: 数据不会再用请勿缓存,内核可以释放与之相关的资源
  • MADV_FREE: 不再需要指定范围内的页面。内核因此可以释放这些页面,但不是立即释放,而是当出现内存压力时释放
  • MADV_FREE_REUSABLE:
  • MADV_FREE_REUSE:
  • MADV_NORMAL: 默认操作,不做任何特殊处理
  • MADV_RANDOM: 随机的顺序访问
  • MADV_SEQUENTIAL: 顺序的访问
  • MADV_WILLNEED: 数据将会再用
  • MADV_ZERO_WIRED_PAGES:



内存映射对象的类型

  • MAP_ANON: 匿名映射,会忽略参数fd,不涉及文件,而且映射区域无法和其他进程共享
  • MAP_COPY:
  • MAP_FILE:
  • MAP_FIXED: 如果所指的地址无法成功建立映射时,则放弃映射,不对地址做修正
  • MAP_HASSEMAPHORE:
  • MAP_JIT:
  • MAP_NOCACHE:
  • MAP_NOEXTEND:
  • MAP_NORESERVE:
  • MAP_PRIVATE: 建立一个写入时拷贝的私有映射,写入数据不影响原文件
  • MAP_RENAME:
  • MAP_RESERVED0080:
  • MAP_SHARED: 共享映射,写入数据会复制回文件, 与映射该文件的其他进程共享



套接字调用标志

  • MSG_CMSG_CLOEXEC: 为UNIX域套接字上接收的文件描述符设置执行时关闭标志
  • MSG_CONFIRM: 提供链路层反馈以保持地址映射有效
  • MSG_CTRUNC: 控制数据被截断
  • MSG_DONTROUTE: 勿将数据包路由出本地网络
  • MSG_DONTWAIT: 允许非阻塞操作(等价于使用O_NONBLOCK)
  • MSG_EOR: 如果协议支持,标记记录结束
  • MSG_ERRQUEUE: 接收错误信息作为辅助数据
  • MSG_FASTOPEN:
  • MSG_FIN:
  • MSG_MORE: 延迟发送数据包允许写更多数据
  • MSG_NOSIGNAL: 在写无连接的套接字时不产生SIGPIPE信号
  • MSG_OOB: 如果协议支持,发送带外数据
  • MSG_PEEK: 返回数据包内容而不真正取走数据包
  • MSG_PROXY:
  • MSG_RST:
  • MSG_SYN:
  • MSG_TRUNC: 即使数据包被截断,也返回数据包的实际长度
  • MSG_TRYHARD:
  • MSG_WAITALL: 等待直到所有的数据可用(仅SOCK_STREAM)
  • MSG_WAITFORONE:



内存与物理存储同步

  • MS_ACTIVE:
  • MS_ASYNC: 异步写入
  • MS_BIND:
  • MS_DIRSYNC:
  • MS_INVALIDATE: 使缓存数据无效
  • MS_I_VERSION:
  • MS_KERNMOUNT:
  • MS_MANDLOCK:
  • MS_MGC_MSK:
  • MS_MGC_VAL:
  • MS_MOVE:
  • MS_NOATIME:
  • MS_NODEV:
  • MS_NODIRATIME:
  • MS_NOEXEC:
  • MS_NOSUID:
  • MS_NOUSER:
  • MS_POSIXACL:
  • MS_PRIVATE:
  • MS_RDONLY:
  • MS_REC:
  • MS_RELATIME:
  • MS_REMOUNT:
  • MS_RMT_MASK:
  • MS_SHARED:
  • MS_SILENT:
  • MS_SLAVE:
  • MS_STRICTATIME:
  • MS_SYNC: 同步写入
  • MS_SYNCHRONOUS:
  • MS_UNBINDABLE:



  • NAME_MAX: 文件名的最大字节数(不包括终止null字节)



文件状态标志

  • O_ACCMODE: 取得访问模式位(文件状态标志的后两位)
  • O_APPEND: 每次写时都追加到文件的尾端
  • O_ASYNC: 异步I/O(仅FreeBSD和Mac OSX)
  • O_CLOEXEC: 把FD_CLOEXEC常量设置为文件描述符标志
  • O_CREAT: 若此文件不存在则创建
  • O_DIRECT: 绕过缓冲区高速缓存,直接IO
  • O_DIRECTORY: 如果path引用的不是目录,则出错。
  • O_DSYNC: 等待写完成(仅数据)。使每次write要等待物理I/O操作完成,但是如果该写操作并不影响读取刚写入的数据,则不需等待文件属性被更新
  • O_EXCL: 如果同时指定了O_CREAT,而文件已经存在,则出错。用此可以测试一个文件是否存在,如果不存在,则创建此文件,这使测试和创建两者成为一个原子操作
  • O_FSYNC: 等待写完成(仅FreeBSD和Mac OSX)
  • O_LARGEFILE:
  • O_NDELAY: 不延迟
  • O_NOATIME:
  • O_NOCTTY: 如果path引用的是终端设备,则不将该设备分配作为此进程的控制终端
  • O_NOFOLLOW: 如果path引用的是一个符号链接,则出错
  • O_NONBLOCK: 如果path引用的是一个FIFO、一个块特殊文件或一个字符特殊文件,则此选项为文件的本次打开操作和后续的I/O操作设置非阻塞方式
  • O_RDONLY: 只读打开
  • O_RDWR: 读、写打开
  • O_RSYNC: 同步读和写。使每一个以文件描述符作为参数进行的read操作等待,直至所有对文件同一部分挂起的写操作都完成
  • O_SYNC: 等待写完成(数据和属性)。使每次write等待物理I/O操作完成,包括由该write操作引起的文件属性更新所需的I/O
  • O_TRUNC: 如果此文件存在,而且为只写或读-写成功打开,则将其长度截断为0
  • O_WRONLY: 只写打开



程序进程执行优先权

  • PRIO_PGRP: 进程的组识别码
  • PRIO_PROCESS: 进程识别码
  • PRIO_USER: 用户识别码



内存保护标志位

共享内存的访问权限

  • PROT_EXEC: 页内容可以被执行
  • PROT_NONE: 页不可访问
  • PROT_READ: 页内容可以被读取
  • PROT_WRITE: 页可以被写入
  • PROT_GROWSDOWN:
  • PROT_GROWSUP:



进程追踪

  • PTRACE_ARCH_PRCTL:
  • PTRACE_ATTACH: 附带(attach)pid子进程
  • PTRACE_CONT:
  • PTRACE_DETACH: 分离(detach)pid 子进程
  • PTRACE_EVENT_CLONE:
  • PTRACE_EVENT_EXEC:
  • PTRACE_EVENT_EXIT:
  • PTRACE_EVENT_FORK:
  • PTRACE_EVENT_VFORK:
  • PTRACE_EVENT_VFORK_DONE:
  • PTRACE_GETEVENTMSG:
  • PTRACE_GETFPREGS:
  • PTRACE_GETFPXREGS:
  • PTRACE_GETREGS:
  • PTRACE_GETREGSET:
  • PTRACE_GETSIGINFO:
  • PTRACE_GET_THREAD_AREA:
  • PTRACE_KILL:
  • PTRACE_OLDSETOPTIONS:
  • PTRACE_O_MASK:
  • PTRACE_O_TRACECLONE:
  • PTRACE_O_TRACEEXEC:
  • PTRACE_O_TRACEEXIT:
  • PTRACE_O_TRACEFORK:
  • PTRACE_O_TRACESYSGOOD:
  • PTRACE_O_TRACEVFORK:
  • PTRACE_O_TRACEVFORKDONE:
  • PTRACE_PEEKDATA: 从pid子进程的内存地址addr中读取一个data
  • PTRACE_PEEKTEXT: 从pid子进程的内存地址addr中读取一个data
  • PTRACE_PEEKUSR: 从pid 子进程的USER区域内地址addr中读取一个data
  • PTRACE_POKEDATA: 将data写入pid子进程的内存地址addr中
  • PTRACE_POKETEXT: 将data写入pid子进程的内存地址addr中
  • PTRACE_POKEUSR: 将data写入pid 子进程的USER区域内地址addr中
  • PTRACE_SETFPREGS:
  • PTRACE_SETFPXREGS:
  • PTRACE_SETOPTIONS:
  • PTRACE_SETREGS:
  • PTRACE_SETREGSET:
  • PTRACE_SETSIGINFO:
  • PTRACE_SET_THREAD_AREA:
  • PTRACE_SINGLEBLOCK:
  • PTRACE_SINGLESTEP: 设置pid子进程的单步追踪旗标
  • PTRACE_SYSCALL: 继续pid 子进程的执行
  • PTRACE_SYSEMU:
  • PTRACE_SYSEMU_SINGLESTEP:
  • PTRACE_TRACEME: 此进程将由父进程追踪



资源限制

  • RLIMIT_AS: 进程总的可用存储空间的最大长度(字节)
  • RLIMIT_CORE: core文件的最大字节数
  • RLIMIT_CPU: cpu时间的最大量值(秒),当超过此软限制时,向该进程发送sigxcpu信号
  • RLIMIT_DATA: 数据段的最大字节长度
  • RLIMIT_FSIZE: 创建的文件的最大字节长度
  • RLIMIT_NOFILE: 每个进程能打开的最多文件数
  • RLIMIT_STACK: 栈的最大字节长度
  • RLIM_INFINITY: 表示对资源没有限制



套接字级控制消息

  • SCM_CREDENTIALS: 传送证书
  • SCM_RIGHTS: 传送访问权
  • SCM_TIMESTAMP:
  • SCM_TIMESTAMPING:
  • SCM_TIMESTAMPNS:



禁止套接字的I/O

  • SHUT_RD: 关闭读端
  • SHUT_RDWR: 关闭写端
  • SHUT_WR: 既无法读取数据,又无法发送数据



套接字类型

  • SOCK_CLOEXEC:
  • SOCK_DCCP:
  • SOCK_DGRAM: 固定长度的、无连接的、不可靠的报文传递
  • SOCK_NONBLOCK:
  • SOCK_PACKET:
  • SOCK_RAW: IP协议的数据报接口
  • SOCK_RDM:
  • SOCK_SEQPACKET: 固定长度的、有序的、可靠的、面向连接的报文传递
  • SOCK_STREAM: 有序的、可靠的、双向的、面向连接的字节流



套接字选项

  • SO_ACCEPTCONN: 返回信息指示该套接字是否能被监听
  • SO_ATTACH_FILTER:
  • SO_BINDTODEVICE:
  • SO_BROADCAST: 广播数据报
  • SO_BSDCOMPAT:
  • SO_DEBUG: 启用网络驱动调试功能
  • SO_DETACH_FILTER:
  • SO_DOMAIN:
  • SO_DONTROUTE: 绕过通常路由
  • SO_ERROR: 返回挂起的套接字错误并清除
  • SO_KEEPALIVE: 启用周期性keep-alive报文
  • SO_LINGER: 当还有未发报文而套接字已关闭时,延迟时间
  • SO_MARK:
  • SO_NO_CHECK:
  • SO_OOBINLINE: 当接收到OOB(out-of-band)数据时会马上送至标准输入设备
  • SO_PASSCRED:
  • SO_PASSSEC:
  • SO_PEERCRED:
  • SO_PEERNAME:
  • SO_PEERSEC:
  • SO_PRIORITY:
  • SO_PROTOCOL:
  • SO_RCVBUF: 接收缓冲区的字节长度
  • SO_RCVBUFFORCE:
  • SO_RCVLOWAT: 接收调用中返回的最小数据字节数
  • SO_RCVTIMEO: 套接字接收调用的超时值
  • SO_REUSEADDR: 重用bind中的地址
  • SO_RXQ_OVFL:
  • SO_SECURITY_AUTHENTICATION:
  • SO_SECURITY_ENCRYPTION_NETWORK:
  • SO_SECURITY_ENCRYPTION_TRANSPORT:
  • SO_SNDBUF: 发送缓冲区的字节长度
  • SO_SNDBUFFORCE:
  • SO_SNDLOWAT: 发送调用中传送的最小数据字节数
  • SO_SNDTIMEO: 套接字发送调用的超时值
  • SO_TIMESTAMP:
  • SO_TIMESTAMPING:
  • SO_TIMESTAMPNS:
  • SO_TYPE: 标识套接字类型



文件类型

  • S_BLKSIZE:
  • S_IEXEC:
  • S_IFBLK: 块设备文件
  • S_IFCHR: 字符设备文件
  • S_IFDIR: 目录
  • S_IFIFO: FIFO文件
  • S_IFLNK: 符号链接(symbolic link)
  • S_IFMT: 所有文件类型
  • S_IFREG: 普通文件
  • S_IFSOCK: 套接字文件



文件访问权限

  • S_IREAD:
  • S_IRGRP: 组读
  • S_IROTH: 其他读
  • S_IRUSR: 用户读
  • S_IRWXG: 组读、写和执行
  • S_IRWXO: 其他读、写和执行
  • S_IRWXU: 用户(所有者)读、写和执行
  • S_ISGID: 执行时设置组D
  • S_ISUID: 执行时设置用户ID
  • S_ISVTX: 保存正文(粘着位)
  • S_IWGRP: 组写
  • S_IWOTH: 其他写
  • S_IWRITE:
  • S_IWUSR: 用户写
  • S_IXGRP: 组执行
  • S_IXOTH: 其他执行
  • S_IXUSR: 用户执行



对输入和输出流控制

  • TCIFLUSH: 刷清输入队列
  • TCIOFLUSH: 刷清输入、输出队列
  • TCOFLUSH: 刷清输出队列



等待子进程中断或结束

  • WALL:
  • WCLONE:
  • WCONTINUED: 若实现支持作业控制,那么由pid指定的任一子进程在停止后已经继续,但其状态尚未报告,则返回其状态
  • WEXITED: 等待已退出的进程
  • WNOHANG: 若由pid指定的子进程并不是立即可用的,则waitpid不阻塞,此时其返回值为0
  • WNOTHREAD:
  • WNOWAIT: 不破坏子进程退出状态
  • WORDSIZE:
  • WSTOPPED: 等待一进程,它已经停止,但其状态尚未报告
  • WUNTRACED: 若某实现支持作业控制,而由pid指定的任一子进程已处于停止状态,并且其状态自停止以来还未报告过,则返回其状态



巨人的肩膀

https://lequ7.com/yong-Go-xue-UNIX-huan-jing-bian-cheng-ji-lu-suo.html
https://geektutu.com/post/quick-go-mmap.html
https://www.jianshu.com/p/965b1ed71ae4
https://blog.csdn.net/bbdxf/article/details/85211143
https://linux.die.net/man/
https://www.gnu.org/software/libc/manual/html_mono/libc.html
《UNIX环境高级编程(中文第三版)》



VChat

一个没有哆啦A梦和静香的IT码农,不专业Gopher
在这里插入图片描述

举报

相关推荐

0 条评论