Articles of pipe理员

/ proc / / pagemaps和/ proc / / maps | Linux的

我试图让我的头在标题中提到的两个文件。 我查了一下这些东西。 然而,我不明白如何从他们中提取有用的信息(或者我只是以错误的方式接近它)。 让我解释一下:pagemaps是一个相当新的“特征”伪文件,包含分配给当前[pid]的虚拟页面的物理帧信息。 也就是说,给定一个从地址x开始的虚拟页面,对于虚拟地址开始说'vas',我可以使用vas索引页面映射文件来获得映射物理页面帧的64位。 这些位包含有关该虚拟页面的信息。 然而,当我提取这些位并做一些转换时,我正在看到我所迷失的东西。 这些位表示如下:0-54是页面帧号,55-60是页面移位,第63位是当前位,还有其他一些我感兴趣的位。 在使用/ proc / [pid] / maps中的地址进行映射之后,似乎几乎所有进程的页面都被交换了,即第63位总是为零。 🙁 我想问题是,我应该如何有效地使用页面地图来获得/ proc / [pid] / maps给出的地址的等效物理地址 公平的说,我发表了一个类似的问题,但是几天前这个方法有些不同。 如果有人能够对这个问题有所了解,我会非常感激。 ===编辑=== 要解决下面的注释:我正在从/ proc / [pid] / maps中读取一行,并且行如下所示: 00400000-00401000 r-xp 00000000 08:01 8915461 / home / janjust / my_programs / shared_mem 7ffffef1b000-7ffffef3c000 rw-p 00000000 00:00 0 [stack] 然后我提取它触及的虚拟页面的数量,并为二进制文件/ proc / [pid] / pagemaps编制索引,并且可以为每个虚拟页面提取分配给它的物理页面。 […]

在bash中使用命名pipe道 – 数据丢失的问题

做了一些在线search,find简单的“教程”使用命名pipe道。 但是,当我做任何与后台工作,我似乎失去了大量的数据。 [[编辑:find一个更简单的解决scheme,请参阅回复post。 所以我提出的问题现在是学术 – 如果有人可能想要一个工作服务器]] 使用Ubuntu 10.04与Linux 2.6.32-25-generic#45-Ubuntu SMP Sat Oct 16 19:52:42 UTC 2010 x86_64 GNU / Linux GNU bash,版本4.1.5(1) – 发行版(x86_64-pc-linux-gnu)。 我的bashfunction是: function jqs { pipe=/tmp/__job_control_manager__ trap "rm -f $pipe; exit" EXIT SIGKILL if [[ ! -p "$pipe" ]]; then mkfifo "$pipe" fi while true do if read txt <"$pipe" then echo […]

Unixpipe入ls

我以为我理解* nixpipe道,直到现在…我有一个可执行文件称为studio ,符号链接到我安装的Android Studio ,我假设我可以得到链接到的位置 which studio | ls -l 但是这不起作用。 它给我的相当于在当前目录下运行ls -l 。 如果我运行which studio ,我会得到/home/me/bin/studio 。 如果我运行ls -l /home/me/bin/studio我会得到预期的输出,显示符号链接的位置。 那么为什么pipe道版本不工作? 我还没有关于pipe道的什么?

以超级用户身份运行一个linux系统命令,使用python脚本

我已经得到了我的机器上安装的后缀,我正在以编程方式更新virtual_alias(使用Python)(在一些行动)。 一旦我更新/ etc / postfix / virtual_alias中的条目,我正在运行命令: sudo /usr/sbin/postmap /etc/postfix/virtual_alias 2>>/work/postfix_valias_errorfile 但我得到的错误: sudo: sorry, you must have a tty to run sudo 我想以非人的方式运行提到的sudo命令(也就是说,我正在从python脚本运行这个系统命令)。 那么如何让这个命令以编程方式运行?

具有poll()的命名pipe道上的O_RDWR

我已经经历了多种不同的命名pipe道客户端/服务器实现,但其中大部分使用读/写阻塞默认值。 因为我已经使用poll()来检查其他标志,但是通过poll()检查传入的FIFO数据也是一个好主意。 在所有的研究之后,我认为在O_RDWR模式下打开pipe道是防止在没有打开作者的情况下在pipe道上无限次数的EOF事件的唯一方法。 这样pipe道的两端都closures,其他客户端也可以打开可写入端。 要回应我会使用单独的pipe道… 我的问题是,虽然我发现了一些使用O_RDWR标志的例子,但open()手册页将该标志描述为分配给FIFO时正在使用。 ( http://linux.die.net/man/3/open ) 但是如何在不使用O_RDWR的情况下在pipe道上使用poll()呢? 你认为“O_RDWR”是一个合法的方式来打开pipe道?

每个TCP / IPnetworking连接使用多less内存?

平均每个TCP / IPnetworking连接占用多less内存(在内核地址空间中)?

由于内存不足导致分割错误

这段代码给了我大约1/2的分段错误时间: int main(int argc, char **argv) { float test[2619560]; int i; for(i = 0; i < 2619560; i++) test[i] = 1.0f; } 我实际上需要分配一个更大的数组,是否有某种方式允许操作系统让我获得更多的内存? 我正在使用Linux Ubuntu 9.10

Linuxpipe道作为input和输出

我想在Linux操作系统的C程序中执行以下操作: 使用系统调用(或2)创buildPIPE 使用exec()执行一个新的进程 将进程的STDIN连接到先前创build的pipe道。 将进程的输出连接到另一个PIPE。 这个想法是为了规避任何驱动器访问的性能目的。 我知道使用PIPE系统调用创buildpipe道非常简单,我可以使用popen创build一个用于input或输出目的的pipe道。 但是,如何在input和输出上做到这一点呢?

限制linux下R的内存使用

我们在Linux集群环境中运行R. 头节点有一些挂起时,用户无意中采取了所有的内存使用R进程。 有没有办法限制Linux下的内存使用情况? 我不想提出全球性的限制,但这可能是唯一的出路。

一些分配器是懒惰的吗?

我在Linux下编写了一个C程序mallocs内存,循环运行它,TOP没有显示任何内存消耗。 那么我已经做了一些内存,TOP显示内存消耗。 当我malloc,我真的“获得记忆”,还是有一个“懒惰”的内存pipe理,只有当我使用它时,给我的内存? (也有一个选项,TOP只知道内存消耗,当我使用它,所以我不知道这个..) 谢谢