您的位置:首页 > 房产 > 家装 > Linux下的系统接口(实时更新)

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

2024/10/6 12:31:21 来源:https://blog.csdn.net/2301_80249167/article/details/138258273  浏览:    关键词:Linux下的系统接口(实时更新)

文件操作

open

acc1f6424dc244e0183057831cd3adf1.png

pathname:路径

flags:文件的打开方式

mode:文件的权限

返回值

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

 

write

0650f1d12fdabeb1de9f7a7c0b592b8a.png

fd : 文件描述符

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

count : 写入字节的最大个数

返回值

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

 

read

10d53709830d37779d2e072982507e39.png

fd:文件描述符

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

count : 读取的最大字节数

返回值

读取成功:

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

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

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

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

读取失败

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

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

 

pipe

8064d539082f8e21dd0e6ef6d149a225.png

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

返回值

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

 

mkfifo

b01251ae448eed556b457d7bd3076594.png

pathname : 文件路径+文件名

mode : 文件权限

返回值

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

 

snprintf

a9bfaa63b4240c89c4f19a6479b64683.png

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

size : 写入的最大字节数。

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

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

返回值

 

共享内存接口

shmget

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

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

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

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

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

返回值:shmid

ftok

57f52cd1bb9d6e9674e5bdb705cb2c70.png

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

 

shmat

8833700c176b87414b8b42aab8a797e0.png

shmid:指定共享内存

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

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

af0b3218e5b1cbb9eb90623cf290adbf.png

shmdt

bae34ab3db2242aa2ccb3e79c4ab00f1.png

shmaddr: 共享内存的地址

 

 

 

进程等待

waitpid和wait

755ed55b1aa8b8e8cdb6c71c0a794279.png

pid : 子进程的pid

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

options : 0是阻塞等待

3fc368855e7e41056cb398c26038c53c.png

返回值

cddfb7189e190d677d906ea65b71a00f.png

时间函数

sleep

命令行的使用

dee977053a4c402cb631aa116a929fce.png

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

语言编程中

sleep(秒数)

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

有关进程的函数

fork

作用:创建子进程

27e493a4be8749aa9ca6155a3718c338.png

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

getpid和getppid

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

5a8bedec53e6432b8aaf83e64e2ed87d.png

 

优先级函数

 

 

进程等待函数

wait

 

status是一个输出型参数,其内存放着进程的结束信号和退出码

返回值

1.等待成功返回等待子进程的pid

2.等待失败返回-1

waitpid 

 

pid指明所要等待的进程

status同wait

option有两种选项

1.阻塞等待(填0),采用该选项时在等待子进程时就会软件阻塞等待不在往后执行

2.非阻塞等待(填WNOHANG),采用该选项等待子进程是会通过多次轮转检测的方式来检测子进程是否退出

返回值

1.等待成功返回等待子进程的pid

2.等待失败返回-1

3.子进程还没有退出返回0

 

 

 

 

 

 

waitpid

 

 

 

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com