
操作系统
文章平均质量分 65
Michael.Scofield
C++程序猿
展开
-
fopen与fdopen,lstat与fstat的区别
stat区别于另外两个系统调用的地方在于,fstat系统调用接受的是 一个“文件描述符”,而另外两个则直接接受“文件全路径”。(如管道和网路通信等),这时必须先调用设备专用函数以获得一个文件描述符,然后再用fdopen使一个标准I/O与该文件描述符相结合。也就是说调用fdopen时,文件已经存在了(即使不存在时,在open()这一步已经创建完了)。打开已存在的文件描述符,使标准I/O流与该文件相结合。,它们都是用来返回“相关文件状态信息”的,三者的不同之处在于设定源文件的方式不同。否则,应返回空指针,原创 2023-02-16 20:51:53 · 574 阅读 · 0 评论 -
一文搞懂Linux的标准输出/错误重定向
Linux系统,有一个非常重要概念,就是一切皆文件。在使用shell脚本时,系统为了能够进行接收外部输入,同时向外部输出,将三个文件始终保持在打开的状态,并使用三个文件描述符0,1,2来分别指向这三个文件,以此来完成标准输入,标准输出,标准错误输出。原创 2023-02-15 23:55:49 · 13632 阅读 · 1 评论 -
C++:操作系统常见问题
1.进程间通信方式管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。共享存储SharedMemory:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一原创 2021-07-16 09:48:17 · 164 阅读 · 0 评论