当前位置:  技术问答>linux和unix

谁给个linux常见函数,数据结构和头文件的的详细资料

    来源: 互联网  发布时间:2016-06-26

    本文导语:  包括系统调用,驱动开发相关的 发现总是记不住 | 本文列出了大部分常见的Linux系统调用,并附有简要中文说明。  以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用...

包括系统调用,驱动开发相关的
发现总是记不住

|
本文列出了大部分常见的Linux系统调用,并附有简要中文说明。 

以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做到这么完全也是很罕见的。 


按照惯例,这个列表以man pages第2节,即系统调用节为蓝本。按照笔者的理解,对其作了大致的分类,同时也作了一些小小的修改,删去了几个仅供内核使用,不允许用户调用的系统调用,对个别本人稍觉不妥的地方作了一些小的修改,并对所有列出的系统调用附上简要注释。 


其中有一些函数的作用完全相同,只是参数不同。(可能很多熟悉C++朋友马上就能联想起函数重载,但是别忘了Linux核心是用C语言写的,所以只能取成不同的函数名)。还有一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数我会在前面标上“*”号以示区别。 


一、进程控制: 


fork 创建一个新进程 

clone 按指定条件创建子进程 

execve 运行可执行文件 

exit 中止进程 

_exit 立即中止当前进程 

getdtablesize 进程所能打开的最大文件数 

getpgid 获取指定进程组标识号 

setpgid 设置指定进程组标志号 

getpgrp 获取当前进程组标识号 

setpgrp 设置当前进程组标志号 

getpid 获取进程标识号 

getppid 获取父进程标识号 

getpriority 获取调度优先级 

setpriority 设置调度优先级 

modify_ldt 读写进程的本地描述表 

nanosleep 使进程睡眠指定的时间 

nice 改变分时进程的优先级 

pause 挂起进程,等待信号 

personality 设置进程运行域 

prctl 对进程进行特定操作 

ptrace 进程跟踪 

sched_get_priority_max 取得静态优先级的上限 

sched_get_priority_min 取得静态优先级的下限 

sched_getparam 取得进程的调度参数 

sched_getscheduler 取得指定进程的调度策略 

sched_rr_get_interval 取得按RR算法调度的实时进程的时间片长度 

sched_setparam 设置进程的调度参数 

sched_setscheduler 设置指定进程的调度策略和参数 

sched_yield 进程主动让出处理器,并将自己等候调度队列队尾 

vfork 创建一个子进程,以供执行新程序,常与execve等同时使用 

wait 等待子进程终止 

wait3 参见wait 

waitpid 等待指定子进程终止 

wait4 参见waitpid 

capget 获取进程权限 

capset 设置进程权限 

getsid 获取会晤标识号 

setsid 设置会晤标识号 



二、文件系统控制 


1、文件读写操作 


fcntl 文件控制 

open 打开文件 

creat 创建新文件 

close 关闭文件描述字 

read 读文件 

write 写文件 

readv 从文件读入数据到缓冲数组中 

writev 将缓冲数组里的数据写入文件 

pread 对文件随机读 

pwrite 对文件随机写 

lseek 移动文件指针 

_llseek 在64位地址空间里移动文件指针 

dup 复制已打开的文件描述字 

dup2 按指定条件复制文件描述字 

flock 文件加/解锁 

poll I/O 多路转换 

truncate 截断文件 

ftruncate 参见truncate 

umask 设置文件权限掩码 

fsync 把文件在内存中的部分写回磁盘 


2、文件系统操作 


access 确定文件的可存取性 

chdir 改变当前工作目录 

fchdir 参见chdir 

chmod 改变文件方式 

fchmod 参见chmod 

chown 改变文件的属主或用户组 

fchown 参见chown 

lchown 参见chown 

chroot 改变根目录 

stat 取文件状态信息 

lstat 参见stat 

fstat 参见stat 

statfs 取文件系统信息 

fstatfs 参见statfs 

readdir 读取目录项 

getdents 读取目录项 

mkdir 创建目录 

mknod 创建索引节点 

rmdir 删除目录 

rename 文件改名 

link 创建链接 

symlink 创建符号链接 

unlink 删除链接 

readlink 读符号链接的值 

mount 安装文件系统 

umount 卸下文件系统 

ustat 取文件系统信息 

utime 改变文件的访问修改时间 

utimes 参见utime 

quotactl 控制磁盘配额 


三、系统控制 


ioctl I/O总控制函数 

_sysctl 读/写系统参数 

acct 启用或禁止进程记账 

getrlimit 获取系统资源上限 

setrlimit 设置系统资源上限 

getrusage 获取系统资源使用情况 

uselib 选择要使用的二进制函数库 

ioperm 设置端口I/O权限 

iopl 改变进程I/O权限级别 

outb 低级端口操作 

reboot 重新启动 

swapon 打开交换文件和设备 

swapoff 关闭交换文件和设备 

bdflush 控制bdflush守护进程 

sysfs 取核心支持的文件系统类型 

sysinfo 取得系统信息 

adjtimex 调整系统时钟 

alarm 设置进程的闹钟 

getitimer 获取计时器值 

setitimer 设置计时器值 

gettimeofday 取时间和时区 

settimeofday 设置时间和时区 

stime 设置系统日期和时间 

time 取得系统时间 

times 取进程运行时间 

uname 获取当前UNIX系统的名称、版本和主机等信息 

vhangup 挂起当前终端 

nfsservctl 对NFS守护进程进行控制 

vm86 进入模拟8086模式 

create_module 创建可装载的模块项 

delete_module 删除可装载的模块项 

init_module 初始化模块 

query_module 查询模块信息 

*get_kernel_syms 取得核心符号,已被query_module代替 


四、内存管理 


brk 改变数据段空间的分配 

sbrk 参见brk 

mlock 内存页面加锁 

munlock 内存页面解锁 

mlockall 调用进程所有内存页面加锁 

munlockall 调用进程所有内存页面解锁 

mmap 映射虚拟内存页 

munmap 去除内存页映射 

mremap 重新映射虚拟内存地址 

msync 将映射内存中的数据写回磁盘 

mprotect 设置内存映像保护 

getpagesize 获取页面大小 

sync 将内存缓冲区数据写回硬盘 

cacheflush 将指定缓冲区中的内容写回磁盘 



五、网络管理 


getdomainname 取域名 

setdomainname 设置域名 

gethostid 获取主机标识号 

sethostid 设置主机标识号 

gethostname 获取本主机名称 

sethostname 设置主机名称 


六、socket控制 


socketcall socket系统调用 

socket 建立socket 

bind 绑定socket到端口 

connect 连接远程主机 

accept 响应socket连接请求 

send 通过socket发送信息 

sendto 发送UDP信息 

sendmsg 参见send 

recv 通过socket接收信息 

recvfrom 接收UDP信息 

recvmsg 参见recv 

listen 监听socket端口 

select 对多路同步I/O进行轮询 

shutdown 关闭socket上的连接 

getsockname 取得本地socket名字 

getpeername 获取通信对方的socket名字 

getsockopt 取端口设置 

setsockopt 设置端口参数 

sendfile 在文件或端口间传输数据 

socketpair 创建一对已联接的无名socket 


七、用户管理 


getuid 获取用户标识号 

setuid 设置用户标志号 

getgid 获取组标识号 

setgid 设置组标志号 

getegid 获取有效组标识号 

setegid 设置有效组标识号 

geteuid 获取有效用户标识号 

seteuid 设置有效用户标识号 

setregid 分别设置真实和有效的的组标识号 

setreuid 分别设置真实和有效的用户标识号 

getresgid 分别获取真实的,有效的和保存过的组标识号 

setresgid 分别设置真实的,有效的和保存过的组标识号 

getresuid 分别获取真实的,有效的和保存过的用户标识号 

setresuid 分别设置真实的,有效的和保存过的用户标识号 

setfsgid 设置文件系统检查时使用的组标识号 

setfsuid 设置文件系统检查时使用的用户标识号 

getgroups 获取后补组标志清单 

setgroups 设置后补组标志清单 


八、进程间通信 


ipc 进程间通信总控制调用 


1、信号 


sigaction 设置对指定信号的处理方法 

sigprocmask 根据参数对信号集中的信号执行阻塞/解除阻塞等操作 

sigpending 为指定的被阻塞信号设置队列 

sigsuspend 挂起进程等待特定信号 

signal 参见signal 

kill 向进程或进程组发信号 

*sigblock 向被阻塞信号掩码中添加信号,已被sigprocmask代替 

*siggetmask 取得现有阻塞信号掩码,已被sigprocmask代替 

*sigsetmask 用给定信号掩码替换现有阻塞信号掩码,已被sigprocmask代替 

*sigmask 将给定的信号转化为掩码,已被sigprocmask代替 

*sigpause 作用同sigsuspend,已被sigsuspend代替 

sigvec 为兼容BSD而设的信号处理函数,作用类似sigaction 

ssetmask ANSI C的信号处理函数,作用类似sigaction 


2、消息 


msgctl 消息控制操作 

msgget 获取消息队列 

msgsnd 发消息 

msgrcv 取消息 


3、管道 


pipe 创建管道 


4、信号量 


semctl 信号量控制 

semget 获取一组信号量 

semop 信号量操作 


5、共享内存 


shmctl 控制共享内存 

shmget 获取共享内存 

shmat 连接共享内存 

shmdt 拆卸共享内存 

|
http://man.chinaunix.net/develop/c&c++/linux_c/default.htm
这个?
可能与驱动内核等无关。。。。

|
楼主,东西可以google很快。
熟了可以man.

|
一般来说,做的多了应该很自然就能记住,否则就太麻烦了。
核心的相关函数信息可以参阅《linux设备驱动程序》和《升入理解linux内核》
应用层的可以用man,也可以参阅《unix高级环境编程》

|
擅用 g.cn

|
google下很多的,在系统里直接man也行

    
 
 

您可能感兴趣的文章:

  • 强人,linux下驱动相关数据结构和usb设备数据结构之间的功能分析
  • 请问有关linux底层网络数据结构sk_buff相关知识
  • 看LINUX的内核要不要硬件、数据结构、算法、汇编
  • 请问哪里有比较全的Linux内核编程API和数据结构的文档?
  • Linux中 怎么得到 一定时间内(timer) page fault 的数量怎么提取阿……什么数据结构存有page fault 的信息?
  • linux下的数据结构如何查得到?另,想查找某一目录下包含特定文字的文件有哪些用什么命令?
  • 在LINUX下用C编程有可以直接使用的“队列”数据结构吗?
  • linux网络数据结构net_device的成员变量问题
  • 一个linux数据结构的问题!(大家帮我啊)
  • linux内核中关于dns数据结构的定义在哪里??
  • 求助:linux-2.6.28内核编译RT2501内核提示内核net_device数据结构缺少成员变量
  • Linux c++虚函数(virtual function)简单用法示例代码
  • 在dos下访问内存的MK_FP函数在linux下对应什么函数?int86()函数呢?
  • linux c下利用srand和rand函数生成随机字符串
  • 哪位大侠有unix/linux的函数和函数所在的文件
  • Linux有定时器函数吗?是不是要自己实现?如果有的话是什么函数呢?谢谢 iis7站长之家
  • linux中,动态库中的函数如何调用静态库中的函数
  • Linux Kernel 'sctp_v6_xmit()'函数信息泄露漏洞
  • linux0.11内核有些函数是封装的吗?比如timer_interrupt()函数。
  • Linux下gettimeofday()函数和clock()函数:精确到毫秒级的时间
  • linux下自带了soup函数库和XML处理函数库了吗?
  • linux c 生成随机数srand函数和rand函数介绍及代码示例
  • linux下类的成员函数不可以作为自定义的信号处理函数么?
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • Linux有定时器函数吗?是不是要自己实现?如果有的话是什么函数呢?谢谢
  • linux c malloc函数定义及用法详解
  • linux c入门问题,大家指教。system函数和exec函数的区别。
  • Windows和Linux下C++类成员方法作为线程函数方法介绍
  • linux 2.6.35.4 内核中已没有netif_rx_schedule()函数,那替代函数是啥?
  • Linux下C语言strstr()查找子字符串位置函数详细介绍(strstr原型、实现及用法)
  • wcslen 等函数能用在linux下面吗?文件路径搜索有没有跨平台的函数库?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下nm命令(显示可执行文件的符号信息)介绍以及常见nm命令用法举例
  • 请问Linux下面有哪些常见的文件后缀名呢?
  • linux/centos安装nginx常见错误及解决办法
  • 请问各位高手,市面上常见的 SCO UNIX、FreeBSD、RedHat Linux 这几种操作系统中哪一种在易用性、稳定性、发展前景等方面更具优势?
  • Linux下Oracle常见安装错误总结及参考案例
  • Linux Shell 常见的命令行格式简明总结
  • 一个 Linux 下 C 语言开发的常见问题:如何包含头文件?
  • Linux常见问题解决
  • [转载]linux常见问题
  • Shell常见知识 方便想学习linux shell的彭玉
  • linux NFS安装配置及常见问题、/etc/exports配置文件、showmount命令
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 在虚拟机上安装的linux上,能像真的linux系统一样开发linux程序么?
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在没有linux的盘,只有DOS启动盘)
  • Docker官方镜像将会使用Alpine Linux替换Ubuntu
  • 如何让win2000和linux共存。我装好WIN2000,再装LINUX7.0,但LILO只能找到LINUX,不能引导WIN2000
  • Linux下chmod命令详细介绍及用法举例
  • 在windows中的VMware装了个linux,主板有两个串口,能做windows和linux的串口通信测试么,怎么测试这两个串口在linux是有效
  • linux僵尸(zombie)进程介绍及清除
  • 我们网站的服务器从windows2000迁往linux,ASP程序继续使用,可是我连LINUX的皮毛都不了解,大家告诉我LINUX下怎么建网站??
  • Linux/CentOS下的CST和UTC时间的区别以及不一致的解决方法
  • 中文Linux与西文Linus分别哪一个版是权威?I认为是:中科软的白旗Linux与西文的绿帽子Linux!大家的看法呢?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3