有谁知道bash如何处理通过管道发送数据?
cat file.txt | tail -20
Run Code Online (Sandbox Code Playgroud)
此命令是否将file.txt的所有内容打印到缓冲区中,然后由尾部读取?或者,这个命令是否逐行打印file.txt的内容,然后在每一行暂停以便尾部处理,然后要求更多数据?
我问的原因是我在嵌入式设备上编写程序,该程序基本上对某些数据块执行一系列操作,其中一个操作的输出作为下一个操作的输入发送.我想知道linux(bash)如何处理这个问题所以请给我一个通用答案,而不是具体说当我运行"cat file.txt | tail -20"时会发生什么.
提前感谢您的回复!
编辑:Shog9指出了相关的维基百科文章,这并没有直接引导我直到文章,但它帮助我找到了这个:http://en.wikipedia.org/wiki/Pipeline_%28Unix%29#Implementation确实有我正在寻找的信息.
对不起,我很抱歉.当然你正在使用管道,当然你正在使用命令各个部分的stdin和stdout.我原以为这太明显了.
我问的是如何处理/实施.由于两个程序不能同时运行,数据如何从stdin发送到stdout?如果第一个程序生成的数据明显快于第二个程序,会发生什么?系统是否只运行第一个命令,直到它被终止或它的stdout缓冲区已满,然后转到下一个程序,依此类推,直到没有剩余的数据要处理,或者是否有更复杂的机制?
我正在使用Visual C++ 2010开发32位Windows应用程序.有一些我真的想要使用内联汇编.但我刚刚意识到Visual C++不支持64位应用程序中的内联汇编.因此,将来移植到64位是一个大问题.
我不知道64位应用程序与32位应用程序有何不同.是否有可能在未来将32位应用程序全部升级到64位?我听说64位CPU有更多的寄存器.由于性能不是我的应用程序的问题,使用这些额外的寄存器不是我的问题.32位应用程序是否需要升级到64位还有其他原因吗?与32位应用程序相比,64位应用程序处理的方式是否有所不同,除了64位应用程序可能使用64位CPU独有的寄存器或指令?
我的应用程序需要与其他操作系统组件进行交互,例如驱动程序,我知道它必须是64位窗口中的64位.我的32位应用程序是否与它们兼容?
如何堆叠n
形状的矢量形状(x,)
,其中x可以是任意数字?
例如,
from numpy import *
a = ones((3,))
b = ones((2,))
c = vstack((a,b)) # <-- gives an error
c = vstack((a[:,newaxis],b[:,newaxis])) #<-- also gives an error
Run Code Online (Sandbox Code Playgroud)
hstack
工作正常,但在错误的维度上连接.
我喜欢python处理变量交换的方式:
a, b, = b, a
我想使用这个功能来交换数组之间的值,不仅一次一个,而且还有一些(不使用临时变量).这不符合我的预期(我希望第三维的两个条目都可以互换):
import numpy as np
a = np.random.randint(0, 10, (2, 3,3))
b = np.random.randint(0, 10, (2, 5,5))
# display before
a[:,0, 0]
b[:,0,0]
a[:,0,0], b[:, 0, 0] = b[:, 0, 0], a[:,0,0] #swap
# display after
a[:,0, 0]
b[:,0,0]
Run Code Online (Sandbox Code Playgroud)
有没有人有想法?当然我总是可以引入一个额外的变量,但我想知道是否有更优雅的方式来做到这一点.
我查看了python的官方文档,但我似乎无法找到参考周期.任何人都可以澄清它对我来说是什么,因为我正在尝试理解GC模块.提前感谢您的回复.
python garbage-collection reference-counting cyclic-reference
刚刚开始使用Lucene.Net.我使用标准分析器索引100,000行,运行一些测试查询,并注意到如果原始术语是单数,则多个查询不会返回结果.据我所知,雪球分析仪增加了支持,这听起来不错.但是,我想知道是否有超过标准的雪球锣有任何缺点?我是否会因为它而失去任何东西?还有其他分析仪要考虑吗?
使用mmap
(使用MAP_PRIVATE和MAP_ANONYMOUS)比使用分配内存有什么缺点malloc
?对于函数范围内的数据,我会使用堆栈内存,因此不会malloc.
想到的一个缺点是动态数据结构,例如树和链表,您经常需要分配和释放小块数据.使用mmap
它会有两个原因,一个用于分配4096字节的粒度,另一个用于要求进行系统调用.
但在其他情况下,你认为哪个malloc
更好mmap
?其次,我是否过高估计mmap
动态数据结构的缺点?
的一个优点mmap
超过malloc
我能想到的是,内存被立即返回到操作系统,当你这样做munmap
,而用malloc/free
的,我猜内存uptil数据段断点再也没有回来,但存放回用.
我试过google,发现我无法理解.
我理解马尔可夫链是一个非常基本的层次:它是一个数学模型,只依赖于以前的输入来改变状态......那么一种加权随机机会而不是不同标准的FSM?
我听说你可以用它们来产生半智能的废话,给出现有单词的句子用作种类的字典.
我无法想到搜索词来找到这个,所以任何人都可以链接我或解释我如何能够产生一个半智能答案的东西?(如果你问过馅饼,它就不会开始关于它听过的越南战争了)
我计划: