【发布时间】:2018-03-18 07:54:29
【问题描述】:
我的老师通常说 printf 中的每个格式说明符都有一个管道通道。也就是说,%d 有一个管道通道,%f 有一个管道通道,依此类推。他说,对应于每个格式说明符的表达式被评估并插入到它的管道中,最后从中取出。他补充说,至少在 gcc 中,管道的填充(参数评估)是从右到左完成的,而管道的清空(打印值)是从左到右完成的。
格式说明符的管道通道的概念是什么? 除了可能相关的 pipe() 函数之外,我在其他任何地方都看不到它。以下是相关问题:fork() and pipes() in c。
引用该问题的答案,
管道是一种用于进程间通信的机制。一个进程写入管道的数据可以被另一个进程读取。创建管道的原语是 pipe() 函数。这将创建管道的读取和写入端。
编译器是否使用管道机制以这种方式执行 printf 语句?这与linux中的管道有关吗?
【问题讨论】:
-
我不认为他指的是 Unix 管道意义上的管道。那太太奇怪了。
标签: c format-specifiers