UNIX 下奇怪的事情
2025-02-18 14:21:49
0浏览
收藏
一分耕耘,一分收获!既然打开了这篇文章《UNIX 下奇怪的事情》,就坚持看下去吧!文中内容包含等等知识点...希望你能在阅读本文后,能真真实实学到知识或者帮你解决心中的疑惑,也欢迎大佬或者新人朋友们多留言评论,多给建议!谢谢!
最近在使用自编工具处理 UNIX 系统任务时,遇到了两个意料之外的情况,并非程序错误,而是行为超出了预期。

线程安全
我编写了一个 C 程序,用于读取磁盘上的图像,进行处理,并将结果输出到标准输出 (STDOUT)。简化后的代码如下:
printf 函数将部分读取的文件传递给子进程
- 进程打开一个未设置
O_CLOEXEC 标志的文件。 - 进程读取文件的一部分(例如,vnlog 中的图例结尾)。
- 进程调用
exec()执行另一个程序处理已打开文件的剩余部分。
第二个程序可能需要文件名而非文件描述符作为命令行参数,因为它可能自行调用 open()。传递文件名会导致重新打开文件并从头开始读取,这无法满足需求。
我尝试使用 /dev/fd/N 传递文件描述符,但它在 Linux 系统上表现得像符号链接,与传递文件名效果相同。
解决方法是使用管道而非文件。/dev/fd/N 在管道上能正确传递文件描述符。 这可以通过将 open("filename") 替换为 popen("cat filename") 来实现,但这并非理想解决方案。 这在 BSD 系统上的表现可能有所不同。
终于介绍完啦!小伙伴们,这篇关于《UNIX 下奇怪的事情》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布文章相关知识,快来关注吧!
ifconfig命令如何设置IP地址
- 上一篇
- ifconfig命令如何设置IP地址
- 下一篇
- AI 眼镜夯 宏达电拚重返荣耀
查看更多
最新文章
-
- 文章 · linux | 6分钟前 |
- Linux下Python虚拟环境安装教程
- 195浏览 收藏
-
- 文章 · linux | 8分钟前 |
- Linuxapt/yum缓存清理技巧分享
- 281浏览 收藏
-
- 文章 · linux | 47分钟前 |
- Linux查看网卡MAC地址的几种方式
- 368浏览 收藏
-
- 文章 · linux | 1小时前 | 断点续传 wget命令
- LINUXwget断点续传与批量下载技巧
- 207浏览 收藏
-
- 文章 · linux | 1小时前 |
- Linux下用Smartctl检测硬盘健康状态
- 310浏览 收藏
-
- 文章 · linux | 1小时前 |
- linux如何检测网络延迟_Linux使用ping命令测试丢包率【网络】
- 328浏览 收藏
-
- 文章 · linux | 2小时前 | Linux
- Linux怎么查看进程占用的物理内存 Linux下VmRSS参数含义详解
- 165浏览 收藏
-
- 文章 · linux | 2小时前 |
- Linux服务器被入侵怎么办?系统中毒排查与修复流程【全攻略】
- 157浏览 收藏
-
- 文章 · linux | 13小时前 |
- Linux查看内存条厂家信息 dmidecode高级用法
- 439浏览 收藏
-
- 文章 · linux | 15小时前 |
- Linux如何防止系统崩溃?_Linux内核日志分析与预防措施
- 173浏览 收藏
-
- 文章 · linux | 15小时前 |
- Linux怎么安装Supervisor_Linux如何管理守护进程程序【方法】
- 126浏览 收藏
-
- 文章 · linux | 16小时前 |
- Linux查看当前系统所有已挂载设备的文件系统UUID
- 362浏览 收藏

