当前位置: 首页 > news >正文

系统调用有哪些函数

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

一、文件与设备管理

  1. open()

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

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

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

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

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

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

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

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

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

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

二、进程管理

  1. fork()

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

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

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

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

    • 功能:获取当前进程的进程ID。
    • 参数:无。
    • 返回值:当前进程的进程ID。
  6. getppid()

    • 功能:获取当前进程的父进程的进程ID。
    • 参数:无。
    • 返回值:父进程的进程ID。
  7. kill()

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

三、内存管理

  1. brk()

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

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

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

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

四、网络通信

  1. socket()

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

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

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

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

相关文章:

  • Compose笔记(六)--Dialog
  • 16.2 LangChain 表达式语言设计哲学:重新定义大模型应用开发范式
  • EGO-Planner的无人机视觉选择(yolov5和yolov8)
  • 基于Python 宠物用品库存管理系统开发
  • 域名解析ip后如何查询该ip地址
  • PDF工具 Candy Desktop(安卓)
  • 【高并发秒杀系统设计:从Guava到Redis的6级缓存架构演进】
  • 【JavaScript/JS】事件回调函数this指向不到Vue/Class 实例上下文的变量或者方法的问题
  • 【东枫科技】X波段 相控阵雷达
  • Open3D显示中文
  • AUTOSAR整体架构与应用层详解和综合实例
  • 面向AI 的前端发展及初识大模型
  • Javaweb数据库多表查询 内连接 外连接 子查询
  • Python GUI 之创建一个圆形进度条控件:RoundProgress
  • 网页五子棋小游戏
  • Promise 全方位解析(图解+实战版)
  • 【弹性计算】弹性裸金属服务器和神龙虚拟化(二):适用场景
  • 控制kinova机械臂沿给定的末端轨迹运动
  • 【银河麒麟高级服务器操作系统】服务器测试业务耗时问题分析及处理全流程分享
  • <tauri><rust><GUI>基于tauri,实现websocket通讯程序(右键菜单、websocket)
  • 佛山做网站/杭州seo网络推广
  • 电子商务网站建设的好处有哪些/网络优化需要哪些知识
  • 银行虚拟网站制作/安卓系统最好优化软件
  • 做嫒嫒网站/免费发布信息
  • 新网站的建设方案/百度sem是什么
  • 怎么做电影网站不违法/南京seo外包