Articles of pipe理员

输出从Linuxpipe道中的两个inpdendent文件

如何在两个inpadendent文件中pipe理来自linuxpipe道的标准输出? 我使用了一个名为openRTSP的工具,并将其标准输出到两个独立的文件,即openRTSP> / tmp / file1> / tmp / file2

将BSS映射到虚拟存储器段0的含义是什么?

我从她的电子书中读到:“可执行文件的BSS段不存储在磁盘上,内核将零页映射到BSS地址范围。 有人可以提供关于这里发生了什么的详细的答案吗?

mprotect – 如何alignment多个页面大小的作品?

我不了解mprotect使用中的“调整分配的内存”部分。 我指的是http://linux.die.net/man/2/mprotect上给出的代码示例 char *p; char c; /* Allocate a buffer; it will have the default protection of PROT_READ|PROT_WRITE. */ p = malloc(1024+PAGESIZE-1); if (!p) { perror("Couldn't malloc(1024)"); exit(errno); } /* Align to a multiple of PAGESIZE, assumed to be a power of two */ p = (char *)(((int) p + PAGESIZE-1) & ~(PAGESIZE-1)); c = […]

pipe道通信中的C问题

我正在尝试编写一些代码,使用pipe道来进行父进程和subprocess之间的通信。 但是,我第一次使用pipe道后,似乎放弃了pipe道(也就是在第一次使用pipe道后停止工作)。 我不知道如何解决这个问题,任何帮助将不胜感激。 我也知道我在这里使用的一些编码实践并不是很理想(主要是使用睡眠)。 const int READ = 0; const int WRITE = 1; char* COOP = "Criminal cooperates\n"; char* SIL = "Criminal doesn't talk\n"; char* reader(int); void writer(int, char *c); int main() { int c1pipe1[2]; int c1pipe2[2]; int c2pipe1[2]; int c2pipe2[2]; int c1sentence = 0; int c2sentence = 0; int r; int c; pipe(c1pipe1); […]

为什么我的Java代码不正确地执行bash命令?

我正在尝试使我的Java程序与Linux bash交互,但出现了一些问题。 我有一个简单的可执行文件,从stdin读取一个整数,并输出其正方形。 执行 echo 5 | ./prog 从bash本身打印正确的答案25在stdout但运行 import java.io.*; public class Main { public static void main(String[] args) throws InterruptedException, IOException { Runtime run = Runtime.getRuntime(); Process proc = run.exec("echo 5 | ./prog"); proc.waitFor(); BufferedReader br = new BufferedReader(new InputStreamReader(proc.getInputStream())); while(br.ready()) System.out.println(br.readLine()); } } 竟然给了5 | ./prog 5 | ./prog 。 解决办法是什么?

如何从用户空间访问linux中的物理内存?

我有一个物理内存地址,哪个驱动程序通过ioctl提供给我。 我怎样才能在我的应用程序在Linux中访问它。

我有足够的内存,但mmap保持失败,说不能分配内存

我试图mmap一些大文件,但失败:我不能mmap任何大于2.7 GB左右的文件。 通过做ulimit -a ,它说我的虚拟内存是无限的。 然后我做了cat /proc/meminfo它说我的系统有3GB Memfree和2GB Swapfree。 我假设我可以mmap文件高达5GB。 我尝试了我在互联网上学到的所有东西,包括使用MAP_NORESERVE标志并将MAP_NORESERVE设置为1 。 它仍然是一样的, Cannot allocate memory 。 什么可能会出错? 我正在使用64位的CPU和一个32位的Linux系统。 如果您需要更多信息,请告诉我。 我真的很感激任何build议或提示。

如何将Linux的哪个命令输出到Linux文件命令中?

$ which file /usr/bin/file $ file /usr/bin/file /usr/bin/file: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped 为什么这不起作用? $ which file | file Usage: file [-bcikLhnNrsvz0] [-e test] [-f namefile] [-F separator] [-m magicfiles] file… file -C -m magicfiles 尝试file –help帮助更多的信息。

如何从文件传递命令行参数

我有一个从argv读取命令行参数的C程序。 是否有可能使pipe道redirect文件的内容作为命令行参数到我的程序? 假设我有一个文件arguments.dat与这个内容: 0 0.2 302 0 我希望我的程序被调用: ./myprogram 0 0.2 302 0 我尝试了以下内容: cat arguments.dat | ./myprogram 没有成功。

我怎样才能在multithreading环境中实现垃圾收集?

我应该如何在由多个线程或进程组成的程序中执行垃圾回收? 我怎样才能从每个线程和进程扫描堆栈? 每个进程是否需要自己的垃圾收集程序? 在一个单独的线程/进程中从实际程序中运行垃圾收集器是一个好主意吗?