我正在wc
用另一种语言重写GNU的实用程序,并且遇到了该命令,这将导致wc输出0字节计数。
(dd ibs=99k skip=1 count=0; ./wc -c) < /etc/group
据我目前所知,dd
是在单独的(子)shellwc
中启动,然后启动,然后/etc/group
在shell内重定向其内容?
该dd
命令使用的输入块大小为99kB,并在读取输入之前跳过其中之一?那就是我被绊倒的地方。
现在,我的版本报告读取了约980个字节,因此我想更好地理解此命令,以便我的实用程序可以反映出来。
此命令(dd ibs=99k skip=1 count=0; ./wc -c) < /etc/group
生成一个子外壳程序(用于(list)
),并附/etc/group
加到该子外壳程序标准输入。
在该子Shell内dd
运行命令(并继承该子Shell的标准输入),其输入块大小为99k
跳过计数1,而要复制的块为0。这将导致dd
查找99k
其标准输入流并停止。完成后wc
,将运行(并继承子外壳程序的标准输入)并报告要读取的流中剩余的字符数(对于大组文件而言,这几乎是什么)。
您的wc
实现是否正在寻找文件句柄的开始?
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句