Articles of pipe理员

如何更新RPM版本?

如何更新RPM版本? 我应该只更新它在我的规格文件,并重新构build整个包?

“内存caching”和“内存池”之间的区别

通过阅读“理解linuxnetworking内部”和“理解linux内核”这两本书以及其他参考书,我感到相当困惑,需要对“内存caching”和“内存池”技术进行一些说明。 1)他们是相同或不同的技术? 2)如果不一样,有什么不同,还是截然不同的目标? 3)另外, Slab Allocator怎么进来?

运行时内存分析在C ++中

我知道已经有一些内存分析与线程和其他工具的线程,但我不知道是否有任何工具或生产环境中的运行时内存分析的常用技术。 我们可以设想一个实现,每个类提供一个memSize()函数,并通过调用memSize()对其所有成员进行扩展,并添加它们自己的大小(或大小估计)。 然后,在任何时候,您都可以查询应用程序,并使用大部分内存查看您的主要数据结构正在使用哪种数据结构,以及随着时间的推移如何变化。 不幸的是,上述策略可能会非常棘手 – 您必须处理诸如locking,内存alignment等问题,有时您不会知道第三方数据结构有多大,您必须猜测。 总的来说,似乎还有很多工作要添加到所有课程中。 所以要回到真正的问题 – 在prod过程中,监视内存使用率和运行时内存增长的好方法是什么?

redirect杀死的可执行文件的标准输出

我有一个C文件,看起来像这样: #include <stdio.h> int main(void) { printf("Hello world\n"); while (1); return 0; } 我希望看到在一个新文件中打印的“Hello world”。 但是当我尝试像这样redirect标准输出时,它不起作用: ./hello_world >> logfile & 然后杀了程序hello_world。

在Linux上使用C中的双pipe双向父子通信

我正在尝试在Linux上使用C使用2个pipe道创build父进程和subprocess之间的双向通信。 父母是我的程序,孩子只是一个随机程序(说“猫”)。 我尝试在父级使用read()来读取子输出,但它给了我errno 9,这是错误的文件描述符。 以下是我的代码 #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <string.h> #include <errno.h> #define Read 0 #define Write 1 #define ParentRead read_pipe[1] #define ParentWrite write_pipe[0] #define ChildRead write_pipe[1] #define ChildWrite read_pipe[0] int main() { int data_processed; /** Pipe for reading for subprocess */ int read_pipe[2]; /** Pipe for writing to subprocess */ int […]

GUI工具包如何与Linux上的窗口pipe理器进行通信?

使GUI工具包(如Qt,GTK)与窗口pipe理器一起工作的基本机制是什么? 据我所知,GUI工具包可以绘制自己的主窗口,而不需要任何窗口pipe理器。 然而让我困惑的一点是,窗口pipe理器何时以及如何在x服务器中检测到“新窗口请求”,并在窗口周围绘制框架,标题等? 当然需要某种隐含的协调。 但是,从编码的angular度来看,窗口pipe理器的初始化似乎对GUI工具包完全透明。 是否可以说,GUI工具包和窗口pipe理器都是x窗口的2个对等客户端? 调用(通知)窗口pipe理器参与新的窗口创build过程是否是x服务器的责任? 如果是这种情况,谁没有窗口pipe理器,谁来决定“应用程序窗口”的位置?

Unix IPC套接字:closures一端而不读取它

我有一个父进程和一个分叉的subprocess,并且它们共享一个使用socketpair(AF_UNIX, SOCK_STREAM, 0, sockets)创build的Unix域IPC套接字。 这两个进程closuressocketpair的一端,并将另一端保存到sockvariables中。 之后,他们这样做: int sock; // Unix-domain socket void child_main() { printf("I am child\n"); sleep(1); close(sock); } void parent_main() { printf("I am parent\n"); write(sock, "hello", 5); char buf[100]; int ret = read(sock, buf, 100); // this read will return ECONNRESET if (ret == -1) { perror("read"); exit(-1); } } 父进程将一些数据写入套接字,并且孩子不读取它。 而是孩子closuressockets。 现在我担心的是,在父进程read失败与ECONNRESET(连接重置由同行),而我期望它会返回“0”表示stream结束。 […]

在Linux中sed的输出将不会写入文件

可能重复: Sed命令find并replace文件和覆盖文件不起作用,它清空文件! 好的,我有这个: sed "s/^/getHtmlBody\(\"\/NmConsole\/Reports\/Workspace\/Virtualization\/WrVMwareHostList\/WrVMwareHostList.asp\?sGroupList=1'/g" out.bat | sed "s/$/\';–\");/g" >out.bat 正如你所看到的,我正在尝试out.bat,但由于某种原因无法正常工作 – 屏幕上没有任何显示,但没有任何内容写入文件。 我究竟做错了什么?

python线程内存使用率64位与32位

我有一个基本的Python程序,使大量的线程(2000年),处理一些东西,然后写出来。 我已经缩小了我的代码是类似于这个(与2k线程):url获取线程的例子: http : //www.ibm.com/developerworks/aix/library/au-threadingpython/ 除了在我的class级,我从字面上什么都不做(从队列中获取项目,然后调用任务完成)。 在这个缩小版本和我所做的版本中,内存使用情况都是一样的。 在32位python解释器中,我使用了大约105MB的虚拟内存。 在64位,我用了超过8演出。 我正在运行rhel 6.我还添加了:threading.stack_size(32768)来获取堆栈大小。 我假设python是抓住一些默认的内存限制保留,我只是不知道这是什么限制。 有任何想法吗? 谢谢!

使用PV来计算行数,并显示总行数,而不是pipe道中的总字节数

我试图做一个小脚本,显示目录在磁盘上使用的总存储量。 为了解决这个问题,我正在使用du命令。 但是,为了给DU提供一些反馈,而DU在一个非常大的目录下工作,我想通过pipe道运行输出并显示行数,这样用户也可以了解有多less文件夹和文件存在于目录中。 这是我的代码: du -ah | pv -l | tail -n 1 | sed 's/\.$//' 但是,虽然pv命令使用行,但它仍然通过pipe道以千字节而不是行显示总数据。 有没有办法显示它通过pipe道的总数,而不是字节。 也许有不同的命令? 谢谢!