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

Linux下的系统接口(实时更新)

文件操作

open

pathname:路径

flags:文件的打开方式

mode:文件的权限

返回值

打开成功返回值该文件的文件描述符,打开失败返回-1。

write

fd : 文件描述符

buf : 指向用于存储写入数据的缓冲区的指针

count : 写入字节的最大个数

返回值

写入成功返回实际写入的字节数,写入失败返回-1。

read

fd:文件描述符

buf : 指向用于存储读取数据的缓冲区的指针

count : 读取的最大字节数

返回值

读取成功:

读取成功返回实际读取的字节数

如果返回的是0,这意味着已经读取到文件的末尾。

文件的位置指针(也就是下一次读取或写入的位置)会根据读取的字节数向前移动。

如果实际读取的字节数少于请求的字节数,这不一定表示出错。例如,文件可能只剩下几个字节,或者数据可能正在从管道或终端流式传输,所以可能无法立即读取到请求的全部数据。此外,如果read()函数在读取过程中被信号中断,也可能导致读取的字节数少于请求的字节数

读取失败

如果读取操作失败,read()函数会返回-1,并且全局变量errno会被设置为一个表示错误类型的值。这样,调用者可以检查errno来确定出错的具体原因。

在出错的情况下,文件位置是否改变是不确定的。也就是说,文件的位置指针可能保持不变,也可能已经向前移动了一部分,这取决于操作系统和文件系统的具体实现

pipe

fildes : 存放管道文件描述符的数组,0下标是只读方式打开,1下标是只写方式打开。

返回值

创建成功返回0,失败返回-1。

mkfifo

pathname : 文件路径+文件名

mode : 文件权限

返回值

创建成功返回0,失败返回-1

snprintf

str : 指向要写入数据的字符数组的指针。(目标数组)

size : 写入的最大字节数。

format : 格式化字符串,用于指定输出格式。

... : 根据format字符串的指定格式传入的参数列表。

返回值

共享内存接口

shmget

key : key是一个标识共享内存的一个标识符,具有唯一性,可以用shmtok接口生成

size:创建的共享内存的大小,一般操作系统是以4KB(一个页的大小)进行分配的,假设申请了4097字节的内存操作系统还是会分配2*4KB,但实际上可用的大小还是4097字节,其他空间就浪费了。

shmflg:打开方式的选项,有IPC_CREAT,IPC_EXCL等等。

IPC_CREAT:用于创建一个新的共享内存段,如果这个内存段不存在则创建,返回shmid;如果这个内存段已经存在就返回这个内存段对应的shmid

IPC_CREAT和IPC_EXCL一起使用:创建一个新的内存段,如果如果这个内存段不存在则创建,返回shmid,如果内存段已经存在则直接返回错误信息。

返回值:shmid

ftok

通过输入一个文件名(可以随意字符串)和一个任意的数字,生成一个key值并返回

shmat

shmid:指定共享内存

shmaddr:指定共享内存在虚拟地址空间的位置,为nullptr的话则是操作系统指定一般设置为空。

shmflg: 挂接的方式,0的话是默认以读写方式挂接

shmdt

shmaddr: 共享内存的地址

进程等待

waitpid和wait

pid : 子进程的pid

status : 输出型参数,返回状态码

options : 0是阻塞等待

返回值

时间函数

sleep

命令行的使用

sleep 5 表示暂停5秒  ; sleep 1m表示暂停一分钟  ; sleep 1h表示暂停一小时  ;sleep 1d表示暂停一天

语言编程中

sleep(秒数)

sleep(5)表示暂停5秒   ; sleep(60)表示暂停60秒

有关进程的函数

fork

作用:创建子进程

使用fork函数会创建子进程,会获得两个返回值,父进程返回子进程的pid,子进程返回0,创建失败返回-1,可以用perror获取创建失败的原因

getpid和getppid

作用:getpid获取子进程的pid,getppid获取父进程的pid

优先级函数


http://www.kler.cn/news/302232.html

相关文章:

  • 人工智能安全治理框架导图
  • 【泰克生物】酵母单杂交技术在基因调控研究中的应用
  • 数据结构——查找算法
  • 240908-结合DBGPT与Ollama实现RAG本地知识检索增强
  • OpenCV结构分析与形状描述符(23)确定一个点是否位于多边形内的函数pointPolygonTest()的使用
  • 单链表的查找与长度计算
  • PyCharm与Anaconda超详细安装配置教程
  • 高效Flutter应用开发:GetX状态管理实战技巧
  • 多线程篇(Fork/Join)(持续更新迭代)
  • 【Python知识宝库】Python中的装饰器:优雅地扩展函数功能
  • 有关 Element-ui 的一些思考
  • 连接数据库(以MySQL为例)
  • Android Framework(五)WMS-窗口显示流程——窗口布局与绘制显示
  • python清除一个月以前的ES索引文档数据
  • 单片机组成原理
  • C语言——静态链表和动态链表
  • 小红书品牌商家怎么接入三方IM服务商?
  • STM32(2)基础介绍及新建工程
  • Ton的编译过程(上)
  • Vue 文件转base64并获取文件编码格式
  • Spring 中使用的设计模式全面解析
  • flink 常见的缩减状态的方式
  • Java并发编程实战 03 | Java线程状态
  • python-pptx在PPT中插入各种形状
  • 【Hadoop|HDFS篇】NameNode和SecondaryNameNode
  • 设计模式学习[5]---装饰模式
  • sqlgun靶场漏洞挖掘
  • 安泰功率放大器有哪些特点呢
  • Linux从入门到开发实战(C/C++)Day13-线程池
  • 滚雪球学SpringCloud[1.1]:Spring Cloud概述与环境搭建(入门章节)