主页 > 互联网  > 

系统调用有哪些函数

系统调用有哪些函数

系统调用是操作系统提供给用户程序的一组“特殊”的函数接口,允许用户程序请求操作系统执行某些低级服务。这些服务通常涉及对硬件的直接操作或访问受保护的内核资源。以下是一些常见的系统调用函数,主要基于Unix/Linux环境:

一、文件与设备管理

open()

功能:打开文件或设备。参数: pathname:文件的路径及文件名。flags:打开文件的行为标志,如O_RDONLY(只读)、O_WRONLY(只写)、O_RDWR(读写)等。mode(可选):文件权限,当文件不存在且需要创建时指定。 返回值:成功时返回文件描述符,失败时返回-1并设置errno。

close()

功能:关闭已打开的文件或设备。参数:fd,文件描述符。返回值:成功时返回0,失败时返回-1并设置errno。

read()

功能:从文件或设备读取数据。参数: fd:文件描述符。buf:数据缓冲区。count:要读取的字节数。 返回值:实际读取的字节数,如果到达文件末尾则返回0,失败时返回-1并设置errno。

write()

功能:向文件或设备写入数据。参数: fd:文件描述符。buf:数据缓冲区。count:要写入的字节数。 返回值:实际写入的字节数,失败时返回-1并设置errno。

lseek()

功能:移动文件读写指针。参数: fd:文件描述符。offset:偏移量。whence:偏移量的基准位置,如SEEK_SET(文件开头)、SEEK_CUR(当前位置)、SEEK_END(文件末尾)。 返回值:成功时返回新的文件偏移量,失败时返回-1并设置errno。

unlink()

功能:删除文件。参数:pathname,文件的路径及文件名。返回值:成功时返回0,失败时返回-1并设置errno。

mkdir()

功能:创建目录。参数: pathname:目录的路径及名称。mode:目录权限。 返回值:成功时返回0,失败时返回-1并设置errno。

rmdir()

功能:删除目录。参数:pathname,目录的路径及名称。返回值:成功时返回0,失败时返回-1并设置errno。

stat()

功能:获取文件的状态信息。参数: pathname:文件的路径及文件名。buf:用于存储文件状态信息的缓冲区。 返回值:成功时返回0,失败时返回-1并设置errno。

ioctl()

功能:设备控制接口,用于设备的各种操作。参数: fd:文件描述符。request:控制命令。arg:控制命令的参数。 返回值:成功时返回0,失败时返回-1并设置errno。 二、进程管理

fork()

功能:创建一个新的进程,称为子进程。参数:无。返回值:在父进程中返回子进程的PID,在子进程中返回0,失败时返回-1并设置errno。

execve()

功能:在当前进程中执行一个新程序,替换当前进程的代码段、数据段和堆栈段。参数: pathname:要执行的程序的路径及名称。argv:传递给新程序的命令行参数数组。envp:传递给新程序的环境变量数组。 返回值:成功时不会返回,失败时返回-1并设置errno。

wait()

功能:等待子进程终止。参数: status:用于存储子进程终止状态的指针。 返回值:成功时返回子进程的PID,失败时返回-1并设置errno。

exit()

功能:终止进程的执行,并返回状态码给父进程。参数:status,进程终止状态码。返回值:不返回。

getpid()

功能:获取当前进程的进程ID。参数:无。返回值:当前进程的进程ID。

getppid()

功能:获取当前进程的父进程的进程ID。参数:无。返回值:父进程的进程ID。

kill()

功能:向进程发送信号。参数: pid:进程ID或进程组ID。sig:要发送的信号。 返回值:成功时返回0,失败时返回-1并设置errno。 三、内存管理

brk()

功能:改变数据段的结束位置,通常用于管理堆内存。参数:end_data,数据段新的结束地址。返回值:成功时返回0,失败时返回-1并设置errno。

mmap()

功能:将文件或设备映射到内存,实现文件的内存映射I/O。参数: addr:建议的映射地址。len:映射区域的长度。prot:映射区域的保护标志。flags:映射标志。fd:文件描述符。offset:文件偏移量。 返回值:成功时返回映射区域的起始地址,失败时返回MAP_FAILED并设置errno。

munmap()

功能:解除文件或设备的内存映射。参数: addr:映射区域的起始地址。len:映射区域的长度。 返回值:成功时返回0,失败时返回-1并设置errno。

mprotect()

功能:设置内存保护属性,控制对内存区域的访问权限。参数: addr:内存区域的起始地址。len:内存区域的长度。prot:新的保护标志。 返回值:成功时返回0,失败时返回-1并设置errno。 四、网络通信

socket()

功能:创建一个新的套接字,用于网络通信。参数: domain:协议族。type:套接字类型。protocol:协议类型。 返回值:成功时返回套接字文件描述符,失败时返回-1并设置errno。

bind()

功能:将套接字绑定到本地地址和端口。参数: sockfd:套接字文件描述符。addr:指向本地地址结构的指针。addrlen:地址结构的长度。 返回值:成功时返回0,失败时返回-1并设置errno。

listen()

功能:使套接字进入监听状态,准备接受连接请求。参数: sockfd:套接字文件描述符。backlog:监听队列的最大长度。 返回值:成功时返回0,失败时返回-1并设置errno。

accept()

功能:接受连接请求,建立新的连接。参数: sockfd:监听套接字文件描述符。
标签:

系统调用有哪些函数由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“系统调用有哪些函数