Articles of pipe理员

为Linux创build一个窗口pipe理器

我想创build一个简单的堆栈窗口pipe理器( C )供个人使用,主要是为了学习和挑战自己。 我已经通过twm的源代码进行了研究,这个代码有相对较less的花里胡哨的function,但由于它不是基于widget工具箱,所以它看起来很低级。 1会使用GTK +等工具包吗? 恐怕twm中的一些代码和库可能太陈旧了( 编辑:已弃用),我希望窗口pipe理器使用相对现代的库。 为了理解,我也会对如何从头开始一个窗口pipe理器的build议感兴趣 – 这个目的没有太多的教程。 更新:对于那些想到类似项目的人:我最终使用了Common Lisp和CLX库 。 tinywm-lisp作为一个基础和灿烂的CLFSWM和树桩是一个很大的帮助。 作为参考,我使用了Freenode上的CLX – Common LISP X接口 ( PDF警告 )和#xlib 。

bash:按列分割命令的输出

我想做这个: 运行一个命令 捕获输出 select一条线 select该行的一列 举一个例子,假设我想从$PID获取命令名(请注意,这只是一个例子,我并不是说这是从进程id获取命令名的最简单的方法 – 我真正的问题是另一个命令的输出格式,我无法控制)。 如果我运行ps我得到: PID TTY TIME CMD 11383 pts/1 00:00:00 bash 11771 pts/1 00:00:00 ps PID TTY TIME CMD 11383 pts/1 00:00:00 bash 11771 pts/1 00:00:00 ps 现在我做ps | egrep 11383 ps | egrep 11383并得到 11383 pts/1 00:00:00 bash 下一步: ps | egrep 11383 | cut -d" " -f […]

打击pipe道处理

有谁知道bash如何处理通过pipe道发送数据? cat file.txt | tail -20 该命令是否将file.txt的所有内容打印到缓冲区中,然后通过尾部读取? 或者是这个命令,比如说,将file.txt的内容一行一行地打印出来,然后在每一行中暂停处理,然后请求更多的数据? 我问的原因是我正在一个embedded式设备上编写一个程序,该程序基本上对一些数据块执行一系列的操作,其中一个操作的输出作为下一个操作的input被发送。 我想知道linux(bash)如何处理这个问题,所以请给我一个一般的答案,不是特别是当我运行“cat file.txt | tail -20”时会发生什么情况。 预先感谢您的回复! 编辑:Shog9指出了相关的维基百科文章,这并没有直接引导我的文章,但它帮助我find这个: http : //en.wikipedia.org/wiki/Pipeline_%28Unix%29#Implementation哪些有我正在寻找的信息。 我很抱歉没有说清楚。 当然,你正在使用一个pipe道,当然你正在使用命令的各个部分的标准input和标准输出。 我认为这太明显,不能说明。 我在问的是如何处理/实施。 由于这两个程序不能同时运行,数据如何从标准input发送到标准输出? 如果第一个程序产生的数据比第二个程序快得多,会发生什么? 系统是否运行第一个命令,直到终止或stdout缓冲区已满,然后转到下一个程序,依此类推,直到没有更多的数据需要处理或者存在更复杂的机制?

Linux为什么我不能find结果rm?

对不起,如果这是一个noobie问题,但我找不到一个好的答案。 find然后删除我可以使用的东西 find . -name ".txt" -exec rm "{}" \; 但是,为什么我不能把结果灌输给他们呢? find . -name ".txt" | rm 就像我会pipe它grep find . -name ".txt" | grep a 我从某个地方读过,rm不会从stdin那里得到input,所以我不能pipe它,但那是什么意思? 当我inputrm a.txt时,它会从标准input读取,就像我可以正确的grep? 或者stdin和命令行有区别。 帮帮我!

如何在Linux上列出软件包的所有依赖关系?

你如何列出一个软件包在Linux上的所有依赖项? 例如: GNU Make Package 有没有什么命令可以列出软件包的依赖关系? 我没有任何软件包pipe理器,因此我不能使用apt-rdepends或dpkg 。 我需要列出任何软件包依赖关系,而不使用软件包pipe理器软件。 这是可以做的事情,或者我必须手动查找包依赖关系。

你为什么要在linux中closurespipe道?

当使用pipe道进行过程 – 过程交stream时,closurespipe道一端的目的是什么? 例如: 如何使用pipe道在两个程序之间发送一个简单的string? 请注意,pipe道的一端在subprocess和父进程中closures。 为什么这是必需的?

如何列出连接到Linux共享内存段的进程?

如何确定哪个进程连接到共享内存段? awagner@tree:/home/awagner$ ipcs -m —— Shared Memory Segments ——– key shmid owner perms bytes nattch status 0x00000000 0 root 777 102400 1 0x00000000 32769 root 774 96 1 dest 0x00000000 98306 awagner 600 393216 2 dest 0x00000000 131075 awagner 600 393216 2 dest 即我如何确定哪两个进程连接到shmid 98306?

何时使用pipe道与何时使用共享内存

我正在阅读各种IPC机制。 我试图找出场景,我们使用共享内存和我们使用命名pipe道(FIFO)的地方。 pipe道:多个进程可以写入,但只有一个进程可以读取。 写操作是primefaces的。 共享内存:多个进程可以读写。 而且用户需要提供互斥的读写。 这是共享内存和pipe道的唯一区别吗?

基于Linux的程序

为这个写一个程序>>>>>> 一个程序将打开一个pipe道,写一个数字给pipe道。 其他程序将打开相同的pipe道,将读取数量并打印它们。 closures这两个pipe道。 我怎么能写一个基于这个任何一个知道的程序,然后请帮助我… !!!!

Linux上ru_maxrss的单位是什么?

这是来自man getrusage struct rusage { struct timeval ru_utime; /* user time used */ struct timeval ru_stime; /* system time used */ long ru_maxrss; /* maximum resident set size */ long ru_ixrss; /* integral shared memory size */ long ru_idrss; /* integral unshared data size */ long ru_isrss; /* integral unshared stack size */ long ru_minflt; […]