C 层函数调用与概念梳理

进程

  • fork:复制当前进程创建子进程。父子进程地址空间独立(写时复制 COW)
  • vfork:创建子进程但共享父进程地址空间,子进程必须立刻 exec/exit,否则会破坏父进程
  • clone:fork/pthread/container 的底层基础
  • execve:在当前进程中装载新程序
  • pause:进程挂起
  • exit / exit_group:线程、进程退出
  • wait:等待子进程退出,不 wait 就会产生僵尸进程
  • waitpid:等待指定 PID 的子进程
  • wait3:wait + 资源使用统计(rusage)
  • wait4:新一代

  • getpid:获取当前进程 PID
  • getppid:获取父进程 PID
  • setpgid:把进程加入/创建进程组
  • setsid:创建新会话
  • tcgetpgrp:查询前台进程组
  • tcsetpgrp:设置前台进程组
  • setuid:改变进程有效 UID
  • setgid:改变进程有效 GID

  • capset:设置 Linux Capability
  • prctl:通用进程控制接口
  • seccomp:系统调用过滤沙箱
  • getrlimit:查询进程资源限制(栈大小、文件数、CPU时间等)
  • setrlimit:设置进程资源限制(ulimit 的内核接口)

线程

  • setjmp:保存执行上下文
  • longjmp:非正常跳转

  • futex:用户态自旋 + 内核阻塞的最底层锁与条件变量原语
  • set_robust_list:线程异常退出时自动解锁 futex

  • sleep:秒级睡眠(基于 alarm + pause 实现)
  • nanosleep:纳秒级高精度睡眠
  • clock_nanosleep:指定时钟源的精确睡眠(单调/实时时钟)

内存

  • malloc:C 库堆分配器,内部用 brk + mmap 管理内存池
  • free:释放 malloc 分配的块(可能不立即归还内核,只回到用户态缓存)
  • mmap:分配虚拟内存,现代 malloc 的主力
  • munmap:销毁一个 VMA 映射区域,直接把虚拟地址空间还给内核
  • brk / sbrk:堆扩展,malloc 的老路径
  • remap_file_pages:重排页映射

  • msync:将内存映射区域的修改内容同步到磁盘文件
  • sync:刷新所有脏页
  • fsync:刷新某个 FD 的数据 + 元数据
  • fdatasync:只刷数据(更快)

  • mprotect:修改某个 VMA 的访问权限(R/W/X)
  • madvise:向内核提示该内存区域的使用模式(顺序访问/随机/不要换出等)
  • mincore:查询驻留页

IO

  • select:最早期的 I/O 多路复用接口,使用位图扫描 fd,O(n),有 1024 限制
  • poll:改进 select,使用数组,突破 fd 上限,但仍是 O(n)
  • pselect:select + 原子信号屏蔽控制,解决 select 信号竞态问题
  • epoll:Linux 专用高性能事件通知机制,O(1) 级,基于就绪事件回调
    • epoll_create:创建 epoll 实例(一个内核事件调度对象)
    • epoll_ctl:向 epoll 注册、修改、删除监听的 fd 及事件
    • epoll_wait:等待内核推送就绪事件(阻塞或超时)
  • eventfd / signalfd / timerfd:把信号/定时器/事件变成 epoll fd
  • io_uring:新一代内核异步 I/O 框架(替代 epoll + aio)

  • read / write:从 FD 读取 / 写入字节流(同步阻塞 IO)
  • pread / pwrite:带偏移的读写,不改变文件指针(线程安全)
  • sendfile / copy_file_range:内核零拷贝文件传输
  • readn / writen:保证读满 / 写满
  • readv / writev:向量 I/O,一次 IO 读写多个 buffer,减少 syscall 次数

文件

  • open:打开或创建文件,返回文件描述符 fd
  • openat:相对某个目录 fd 打开文件(解决路径竞态、沙箱安全)
  • openat2:新一代 open,支持 RESOLVE_* 沙箱约束
  • creat:等于open(O_CREAT|O_WRONLY|O_TRUNC)
  • close:关闭 FD,引用归零则释放资源

  • mkdir / rmdir:创建/删除目录
  • mount / umount:挂载/卸载
  • pivot_root:切换根文件系统
  • rename:重命名路径
  • unlink:删除文件名(目录项),可能延迟真正释放 inode
  • link / symlink:创建硬链接 / 符号链接

  • dup / dup2 / dup3:FD 复制与重定向(共享同一 file 结构)
  • lseek:改变“文件读写指针偏移”
  • SEEK_DATA / SEEK_HOLE:查询稀疏文件数据/空洞区间

  • ioctl:万能控制通道
  • fcntl:通用 fd 控制(flags、锁、dup),epoll / NIO 的开关
    • O_NONBLOCK:非阻塞
    • F_SETFL:修改 flag
    • F_SETLK:文件锁
    • F_DUPFD:复制 FD
    • FD_CLOEXEC:exec 时自动关闭

  • stat(path):通过路径查询 inode 信息
  • lstat(path):通过链接查询 inode 信息
  • fstat(fd):通过fd 查询 inode 信息
  • fstatat(dirfd,path,flags):相对目录查询
  • statx:新一代扩展 stat

  • access:按真实 UID/GID 测权限
  • faccessat:相对目录版测权限
  • chmod:路径权限修改
  • fchmod:FD权限修改
  • fchmodat:相对目录权限修改
  • chown 改属主
  • fchown:改FD
  • fchownat:改相对目录
  • lchown:改链接本身

信号

  • kill:向指定 PID 发送信号(可杀、可唤醒、可通知)
  • tgkill / gkill:向指定线程发送信号(线程级 kill)
  • abort:发送 SIGABRT 给自己并生成 core dump

  • sigaction:安装信号处理函数
  • sigprocmask:设置当前线程的信号屏蔽字
  • sigpending:查询当前被屏蔽但已到达的信号
  • sigsuspend:原子性解除屏蔽并进入睡眠,直到信号到来
  • sigqueue:带数据的信号发送(实时信号)

时间

  • clock_gettime:读取指定时钟源的当前时间(ns 精度)
  • clock_getres:查询该时钟的分辨率
  • clock_settime:设置系统实时时钟

  • setitimer:设置进程间隔定时器,到期发送 SIGALRM/SIGVTALRM
  • alarm:setitimer(ITIMER_REAL) 的秒级简化接口
  • ualarm:微秒级 alarm

  • timerfd_create:创建一个“定时器文件描述符”
  • timerfd_settime:启动/修改定时器
  • timerfd_gettime:查询剩余时间

  • hrtimer:高精度定时器核心
  • jiffies:低精度时间轮刻度
  • timekeeping:时钟源管理层

限制

  • sysconf:查询系统范围内的运行时限制或配置信息
    • _SC_OPEN_MAX:每进程最大打开文件数
    • _SC_PAGESIZE:页面大小
  • pathconf:查询指定路径(目录或文件)相关的运行时限制
    • _PC_NAME_MAX:目录项名最大长度
    • _PC_PATH_MAX:路径最大长度
  • fpathconf:查询已经打开的文件描述符对应文件/路径的运行时限制

设备

  • mknod:创建字符设备、块设备或命名管道(FIFO)文件。用户空间系统调用,内核创建 cdev 或 block_device
  • open / release:设备文件的打开和关闭操作

  • kmalloc / kfree:分配任意大小的内核内存
  • vmalloc / vfree:分配虚拟连续但物理不连续的内存
  • get_free_page:分配单页物理内存,返回页对齐指针,常用于 DMA 或 page cache

  • ioperm:设置单个端口 I/O 访问权限(通常给 root 使用)
  • iopl:设置整个进程的 I/O 权限级别(ring 0-3),可以直接执行 in/out 指令
  • inb/outb/inw/outw:直接访问 I/O 端口的指令(x86 体系)
  • request_region / release_region:内核请求/释放 I/O 端口范围,防止冲突

Socket

  • bind:将套接字绑定到本地 IP + 端口。TCP/UDP 服务器必须调用。
  • listen:监听 socket;SYN 半连接队列、accept 完成队列
  • connect:客户端发起连接请求,阻塞直到 TCP 三次握手完成
  • accept:从内核连接队列中取出一个“已完成三次握手的 socket”
  • send / recv:基本字节流 I/O(TCP/UDP 可用),阻塞或非阻塞模式
  • sendmsg / recvmsg:支持向量 I/O、控制消息 ancillary data、recv out-of-band 等高级功能
  • close:触发 FIN / ACK / TIME_WAIT 的关闭协议
  • SO_LINGER:close 时控制 FIN 行为
  • shutdown:半关闭套接字(禁止读或写),但套接字仍有效,可继续另一方向通信

  • getsockopt / setsockopt
    • TCP_NODELAY:禁用 Nagle
    • SO_RCVBUF:接收缓冲
    • SO_SNDBUF:发送缓冲
    • SO_REUSEADDR:端口复用
    • SO_KEEPALIVE:心跳
  • getsockname / getpeername:返回本地/对端 IP 端口
  • sockatmark:判断是否到达 OOB(Out Of Band)数据边界

  • socket:创建 TCP/UDP/RAW 等套接字,返回文件描述符
  • socketpair:创建一对本地(AF_UNIX)双向通信套接字,用于进程间通信(IPC)
  • domain/type/protocol:socket 参数,用于指定 AF_INET/AF_UNIX、SOCK_STREAM/RAW、IPPROTO_TCP/UDP

UDP

  • sendto:向一个“无连接 socket”直接投递一个 IP 数据报
  • recvfrom:从内核 UDP 收包队列中取出一个完整数据报,并告诉你是谁发的。
  • dg_echo:验证 recvfrom / sendto 是否正确工作
  • dg_cli:dg_echo 的客户端
  • mcast_join:多播加入

inet

  • inet_aton:把字符串 IPv4 → struct in_addr(二进制)
  • inet_ntoa:把 struct in_addr → 字符串 IPv4
  • inet_pton:字符串 → 二进制地址(IPv4/IPv6)
  • inet_ntop:二进制地址 → 字符串(IPv4/IPv6)

路由

  • sysctl
    • tcp_fin_timeout:FIN 等待时长
    • tcp_tw_reuse:TIME_WAIT 复用
    • ip_forward:是否路由转发
    • rmem_max / wmem_max:socket 最大缓冲
    • tcp_syncookies:SYN flood 防护
  • get_ifi_info
    • 网卡名:eth0 / wlan0
    • IP 地址
    • 子网掩码
    • 广播地址
    • 是否 UP
    • 是否支持多播

数据链路

  • BPF(Berkeley Packet Filter 分组过滤器)
    • tcpdump 的过滤规则
    • 防火墙 iptables/nftables
    • Android 的 netd / VPN / SELinux 网络隔离
  • DLPI(Data Link Provider Interface):ARP / IP / PPP
  • libpcap:用户态抓包库,基于 BPF 或 pcap 驱动抓取网络流量,可用于 tcpdump/wireshark
    • pcap_open_live
    • pcap_compile
    • pcap_loop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1145122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI安全众测平台:标准化测试环境+灵活计费,降低参与门槛

AI安全众测平台:标准化测试环境灵活计费,降低参与门槛 1. 为什么需要AI安全众测平台? 想象一下,你正在参加一场编程马拉松比赛,但有的选手用的是最新款MacBook Pro,有的却只能使用老旧笔记本——这种硬件…

AI+UEBA融合部署:双模型联动分析,云端GPU按需扩展

AIUEBA融合部署:双模型联动分析,云端GPU按需扩展 引言:金融安全的双重防护需求 在金融行业,每天都有海量的用户交易和行为数据产生。传统的安全检测系统往往面临两个核心痛点:一方面,基于规则的系统难以应…

制造业零件检测AI方案:缺陷识别准确率98%,成本透明

制造业零件检测AI方案:缺陷识别准确率98%,成本透明 1. 为什么小型加工厂需要AI质检? 最近越来越多的客户在验收订单时,要求供应商提供AI质检报告。传统人工检测方式存在几个痛点: 老师傅培养周期长,新手…

Redis 实现主从同步

Redis 主从同步(Replication)是指将一台 Redis 服务器(主节点)的数据复制到其他 Redis 服务器(从节点)的过程。以下是 Redis 主从同步的实现原理和配置方式。一、主从同步工作原理1. 全量同步(初…

AI智能体保姆级教程:小白10分钟上手,云端GPU免配置

AI智能体保姆级教程:小白10分钟上手,云端GPU免配置 引言:什么是AI智能体? 想象你有一个24小时在线的数字助手,它能帮你查资料、写报告、分析数据,甚至根据你的需求自动编写代码——这就是AI智能体的核心能…

无痛体验AI侦测:1小时1块,不满意随时退

无痛体验AI侦测:1小时1块,不满意随时退 1. 为什么你应该试试AI侦测 最近AI技术越来越火,各种宣传看得人眼花缭乱。你可能也好奇AI到底能做什么,但又担心配置太复杂,自己搞不定。现在有个好消息:你可以用1…

达梦(DM8)对 JSON 与 XML 的使用教程

JSON达梦提供了丰富的JSON处理函数:-- 创建包含JSON字段的表 CREATE TABLE user_info (id INT,profile JSON,settings JSONB );-- 插入JSON数据 INSERT INTO user_info VALUES (1, {"name": "张三", "age": 25}, {"theme":…

Redis 可以实现哪些业务功能

Redis 是一款高性能的内存数据库,支持多种数据结构,在实际业务中应用广泛,以下是其主要业务功能:1. 缓存这是 Redis 最核心的用途,能显著提升系统性能:热点数据缓存:缓存数据库查询结果&#xf…

AI威胁检测省钱攻略:按秒计费云端GPU,比买服务器省万元

AI威胁检测省钱攻略:按秒计费云端GPU,比买服务器省万元 1. 为什么创业公司需要AI威胁检测? 对于创业公司而言,网络安全是生死攸关的问题。想象一下,你的公司就像一个小型便利店,虽然规模不大,…

AI威胁检测新手指南:避开环境配置那些坑

AI威胁检测新手指南:避开环境配置那些坑 1. 什么是AI威胁检测? 想象一下你是一名小区保安,每天要监控数百个摄像头画面。传统方式需要你盯着屏幕看异常行为,而AI威胁检测就像给你配了一个智能助手,它能自动识别可疑人…

StructBERT轻量版部署:无显卡环境情感分析方案

StructBERT轻量版部署:无显卡环境情感分析方案 1. 背景与需求:中文情感分析的现实挑战 在当前自然语言处理(NLP)的应用场景中,中文情感分析已成为企业洞察用户反馈、监控舆情、优化客服系统的核心技术之一。无论是电…

经典五合一版本,值得收藏

现在电脑性能是越来越好了,但是有一些老配置的电脑还在使用,只能带动一些老版本的软件。今天给大家带来的是Office2003、Office2007、Office2010、Office2013、Office2016共五个版本,能够更好的支持老配置的电脑,有需要的小伙伴可…

零信任+AI检测最佳组合:云端GPU快速验证,降本80%方案

零信任AI检测最佳组合:云端GPU快速验证,降本80%方案 引言:企业安全的新挑战与低成本验证方案 作为企业架构师,当你听到厂商说"零信任方案必须搭配AI检测引擎才能生效"时,第一反应可能是:这套方…

没预算怎么学AI智能体?云端GPU按需付费,1块钱起

没预算怎么学AI智能体?云端GPU按需付费,1块钱起 引言:AI智能体学习的新选择 作为一名想转行AI的职场新人,你可能经常被一个问题困扰:学习AI智能体开发需要强大的GPU算力,但动辄上万的显卡价格让人望而却步…

让学术写作更从容:宏智树AI,你的全流程科研伙伴

在高校图书馆的深夜灯光下,在研究生宿舍的书桌前,在导师一次次“再改一稿”的反馈中,无数学子与论文鏖战。从开题时的迷茫,到数据处理的繁琐,再到查重降重的焦虑——学术写作从来不是一件轻松的事。但今天,…

宏智树AI:重塑学术写作新范式,开启智能科研新纪元——让论文写作从“复杂工程”变为“高效创作”

在学术研究的道路上,论文写作是每位学者必经的“最后一公里”。然而,从选题开题到数据整理,从文献综述到查重降重,每一步都充满挑战:灵感枯竭、逻辑混乱、数据处理低效、查重率居高不下……这些问题不仅消耗大量时间&a…

AI+区块链安全监控:智能合约行为分析,GPU资源独享保障

AI区块链安全监控:智能合约行为分析,GPU资源独享保障 引言 在DeFi(去中心化金融)的世界里,智能合约就像自动运行的"数字银行柜员",它们7x24小时处理着用户的存款、借贷、交易等操作。但这也带来…

轻量级办公处理神器,绝了

今天给大家推荐一款好用的轻量级word办公处理软件,无需第三方支持,仅8M大小,有需要的小伙伴可以下载收藏。 DocLite 轻量级Word办公处理软件 软件支持*.doc,*.docx,*.rtf,*.txt,*.htm,*.html 等常见文档格式,无需第三方依赖&…

AI侦测模型效果调优:云端GPU秒级重启,实验效率提升10倍

AI侦测模型效果调优:云端GPU秒级重启,实验效率提升10倍 1. 为什么我们需要更快的模型调优? 作为一名算法工程师,我深知调参的痛苦。传统本地训练环境每次重启需要20分钟,一天只能测试5组参数。这种低效的工作流程严重…

宏智树AI:引领学术写作新纪元的智能解决方案

在学术研究的道路上,每一位学者和学生都曾面临过共同的挑战:如何高效地完成一篇结构严谨、内容翔实的论文?从选题构思到最终定稿,每一步都需要投入大量的时间和精力。而今,这一过程迎来了革命性的变革——宏智树AI应运…