Articles of pipe理员

命令在terminal中工作,但不通过QProcess

ifconfig | grep 'inet' 通过terminal执行时正在工作。 但不通过QProcess 我的示例代码是 QProcess p1; p1.start("ifconfig | grep 'inet'"); p1.waitForFinished(); QString output(p1.readAllStandardOutput()); textEdit->setText(output); 没有什么是显示在textedit。 但是当我在qprocess的开始只使用ifconfig时,输出显示在textedit上。 我有没有想过构build命令ifconfig | grep 'inet'任何技巧? ifconfig | grep 'inet' ,就像用' \| '和\| 为| ? 为特殊字符? 但我也试过,以及:(

我可以在Linux上做一个copy-on-write memcpy吗?

我有一些代码经常复制一大块内存,往往只做了非常小的修改。 我已经实现了一个跟踪变化的系统,但是我认为它可能是很好的,如果可能的话,告诉操作系统做一个“写入时拷贝”的内存,让它只处理这些部分的拷贝哪个变化 然而,当Linux进行写入时拷贝时,例如fork()时,我找不到控制它并自己做的方法。

内存主机和内存参数之间的关系xms和xmx来自Java

我有以下主机与内存的细节: $free -m total used free shared buffers cached Mem: 7872 7579 292 17 483 3983 -/+ buffers/cache: 3112 4759 Swap: 2047 14 2033 我有一个Java应用程序运行params -Xms200m -Xmx200m ,有人可以请解释为什么VCZ是3800076和RSS是241304(这是更多的Java参数) 从ps -aux命令: 66345 6773 0.2 2.9 3800076 241304 ? Sl Apr1 12:06 /apps/myapps/myapp1/java/bin/java -Xms200m -Xmx200m

如何在命名pipe道(mkfifo)上执行非阻塞fopen?

如果我有一个程序创build并试图使用mkfifo打开一个命名pipe道,我怎样才能打开pipe道读取或写入没有阻塞? 具体来说,我正在写一个C程序,可以使用或不使用gui(用Java编写)来运行。 在C程序中,我成功地使用mkfifo创build了命名pipe道,但是当我这样做时 FILE* in = fopen(PIPE_IN, "r"); /* Where PIPE_IN is the filename*/ 在GUI打开pipe道进行写入之前,fopen不会返回。 我希望做的是让pipe道准备被读取一次(如果)GUI决定写入它 – 我将把文件描述符放在一个select()调用中。 有理由期望java GUI可能永远不会被启动,所以我不能依靠它在任何特定点甚至根本上打开pipe道的另一端。 我也会有第二条pipe道,我想我也会遇到同样的问题。 此外,我不能在没有阅读器的输出pipe上设置O_NONBLOCK。 有什么build议么? (这是在Linux系统上运行)

是否有可能有两个由同一父(LINUX,POSIX)创build的subprocess之间的pipe道

我有多个孩子由同一个父母“分叉”,我尝试构build所有这些subprocess之间的pipe连接,如链接列表结构。 孩子1发送数据到孩子2,孩子2发送到孩子3 ….孩子N发送给孩子1.有没有什么合适的方法来做到这一点? 另外,如果我在进程之间创build和通信,我强制父进程等待所有进程完成他们的工作,因为wait()或waitpid()等待第一个完成的进程,但是我需要等待所有进程。 这是另一个问题出现。 谢谢…

IPC的性能:命名pipe道与套接字

每个人似乎都认为命名pipe道比套接字IPC更快。 他们快多less? 我更喜欢使用套接字,因为它们可以进行双向通信,而且非常灵活,但是如果数量相当多的话,它会select速度而不是灵活性。

Windows上的Pythonpipe道:为什么这不起作用?

我正在尝试这样的事情 Output.py print "Hello" Input.py greeting = raw_input("Give me the greeting. ") print "The greeting is:", greeting 在CMD线 Output.py | Input.py 但是它返回一个EOFError 。 有人能告诉我我做错了什么吗? 谢谢你的帮助。 编辑 帕特里克哈灵顿的解决scheme的作品,但我不知道为什么…

如何获得Win32线程的名称?

我知道在Windows下设置线程名称的非直观过程(请参阅“ 如何将名称设置为Win32线程? ”)。 有没有办法获得线程的名称? 我没有看到任何Windows API允许我这样做( http://msdn.microsoft.com/en-us/library/windows/desktop/ms684847(v=vs.85).aspx )。

Windows进程的内存映射怎么样?

这可能是一个重复的问题。 我想知道一个Windows进程的内存映射是怎样的? 我正在寻找细节。 请提供指向博客,文章和其他相关文献的链接。

Windows 32位虚拟内存页面映射问题

我从这里学习了Windows 32位虚拟内存页面映射, (我的目标是现代Windows版本,如Vista,Win 7,Server 2003/2008 32位版本。) http://blogs.msdn.com/ericlippert/archive/2009/06/08/out-of-memory-does-not-refer-to-physical-memory.aspx 两个混乱, 用户空间的虚拟内存空间通常限制在2G,但是物理磁盘页面的存储量可能比2G大得多。 由于磁盘页面比虚拟内存页面多,因此理论上可以将多个磁盘页面映射到一个虚拟地址页面。 如果用户请求访问某个虚拟地址,如果多个磁盘页面映射到一个虚拟地址页面,内存pipe理器如何知道应该访问哪个磁盘页面? 不知道为什么有像byte []这样的数组必须使用连续的虚拟内存空间。 我想理论上即使我们只分配了500M的虚拟空间地址,我们也可以重新使用这样的虚拟空间地址来继续映射/取消映射磁盘页面文件,尽可能多的使用我们想要的,甚至大于2G。 有任何想法吗?