Articles of pipe理员

检测Mono中的符号链接和pipe道

有没有办法区分使用C#和单声道符号链接和pipe道的特殊文件? 该应用程序是一个多平台的备份工具,所以我想避免使用互操作库或'C'DLL,并寻找一个直接的托pipe代码解决scheme。

“set – $ REPLY”是做什么的?

#!/bin/bash command1 |while read do set — $REPLY command2 done 我正在浏览networking,我遇到了这段代码。 “set – $ REPLY”是做什么的?

如何编译Redis以便我可以在共享主机上上传并运行它?

我需要在共享主机帐户上运行Redis,但由于共享主机的性质,无法在服务器上编译。 我有SSH访问,但我的主机提供商告诉我,我需要首先编译Redis,然后将其上传到服务器。 我不知道该怎么去解决这个问题,唯一一个问这个问题的人从来没有得到答复。 那么,如何编译Redis以便我可以将其上传到我的共享主机帐户并在其上运行?

使用循环shell命令行调用popen()pipe道stream

我testing这个例子用pipe道编程,它似乎很简单。 但是我想知道如果第一个popen()调用的第一个参数(包含一个shell命令的string)持有'while do'循环会发生什么。 例如,如果我执行这个shell命令3秒钟,我得到这个输出: tomas@ubuntu64:~$ while true; do ps -A; sleep 1; done | grep init 1 ? 00:00:03 init 1 ? 00:00:03 init 1 ? 00:00:03 init 所以grep正在每个迭代中工作。 但是,如果我通过C语言实例来完成,则通过以下方式更改示例的popen() : FILE* ps_pipe = popen("while true; do ps -A; sleep 1; done", "r"); 执行编译的C程序时,我没有输出结果。 任何人都可以从中看出这一点?

在Linux中,考虑到32位架构,每个进程都有4GB的虚拟地址空间

嗨,我是新的Linux内核开发。 所以要清楚下面的说法。 在内存中,每个进程都有一个4GB的虚拟地址空间 考虑一个32位架构。 较低的3GB虚拟地址可供进程的用户空间部分访问,较高的1GB可由内核空间部分访问。 这是否意味着在linux中的每个进程都分配了多less内存空间1GB + 3GB? 如果是的话那么在linux上有几百个进程,那么从系统获得这么大的内存空间到100 * 4GB的空间呢? 它与内核堆栈和用户堆栈有什么关系? Linux中的每个进程都有内核和用户堆栈吗?

subprocess和父进程之间的交互双向通信(使用pipe道)

我正在尝试创build一个subprocess,将其stdin和stdoutredirect到父进程,并与subprocess进行交互。 也就是说,父进程应该能够接收来自subprocess的input,并对子进行处理,并将输出提供给subprocess,循环重复进行(如用户与shell的交互,这实际上是最终目标:模拟用户交互)。 到目前为止,我已经能够成功地创build和redirectpipe道(下面的代码只是回应父进程,从用户到subprocess的input)。 问题是,我只能这样做一次,孩子在第一个I / O周期结束后,我得到一个SIGPIPE。 我怎么能让孩子活着,当父母写信给孩子时,让孩子读书? PS我知道除了可以用来模拟用户交互,但我需要访问返回的数据做自定义分析,我想这样做的学术目的。 #include <iostream> #include <string> #include <sstream> #include <unistd.h> #include <stdio.h> #include <sys/wait.h> #include <limits.h> #include <sys/types.h> #include <cstdlib> #define MAX_CMD_SIZE 256 #define MAX_BUFF_SIZE 512 #define NUM_PIPES 2 #define PARENT_READ_PIPE pipes[0] #define PARENT_WRITE_PIPE pipes[1] #define READ_END 0 #define WRITE_END 1 #define PARENT_READ_FD PARENT_READ_PIPE[READ_END] #define PARENT_WRITE_FD PARENT_WRITE_PIPE[WRITE_END] #define CHILD_READ_FD […]

Linux中的沙盒技术:snappy vs flatpak比较?

所以现在xdg-app已经被重命名为FlatPak了 ,除了由Canonical和FlatPak实现的Snappy被Red Hat实现以外 ,谁能提一下每个解决scheme提供/缺less的东西的比较列表?

你如何处理在Apache共享服务器上的带宽计费?

你有什么解决scheme来处理您的虚拟主机共享环境中的虚拟主机的带宽计费? 如果您使用日志分析,日志变得非常大时您的解决scheme是否可以很好地扩展? 任何人在这里使用任何types的模块?

有没有可能修剪守护进程打开日志文件没有守护进程closures文件?

我有一个守护进程写入日志文件,最终填满磁盘。 有没有办法让我定期限制日志文件的大小而不停止守护进程而不改变其中的代码? SIGHUP杀死守护进程。

在/ etc / environment中添加或更新configurationlogging

我的/ etc /环境如下所示: cat /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" 我希望使用一个命令(sed,awk,python,不pipe…),这将使它看起来像这样: cat /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" JAVA_HOME="/usr/lib/jvm/java-6-sun" 现在可以肯定的是,我宁愿将它作为一个class轮(在sed -XYZ / DoMagic / / etc / environment的字段中),它需要包含合并逻辑 – 要么附加新的configurationlogging,要么更新现有的configurationlogging。 底线,它应该防止文件看起来像这样:(由经验丰富的shell脚本调用echo >>在每次调用) cat /etc/environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" JAVA_HOME="/usr/lib/jvm/java-5-sun" JAVA_HOME="/usr/lib/jvm/java-6-sun" JAVA_HOME="/usr/lib/jvm/java-6-sun" JAVA_HOME="/usr/lib/jvm/java-6-sun" 我想这是一个技巧性的问题,因为我试图避免使用自定义脚本,如 /usr/local/bin/PropUpdate /etc/environment JAVA_HOME "/usr/lib/jvm/java-6-sun" / usr / local / bin / PropUpdate是下面的脚本(为了举例而写,可能包含错误。 #!/bin/bash # Append/Update a configuration record in a file # # […]