Articles of pipe理员

我如何从我的Windows机器上运行安装在Linux机器上的OpenGL应用程序?

本着帮助的精神,这是一个我已经解决的问题,所以我会在这里回答这个问题。 问题 我有: 必须在Redhat或SuSE企业上安装的应用程序。 它有巨大的系统需求,需要OpenGL。 它是需要在一台机器上一起操作的一套工具的一部分。 此应用程序用于在工时方面的时间密集型任务。 我不想坐在这个应用程序的服务器机房工作。 所以,问题出现了…如何从远程Windows机器上运行此应用程序? 我将概述我的解决scheme。 随意评论替代品。 此解决scheme也适用于更简单的环境。 我的情况有点极端。

如何在两个进程之间用pipe道发送整数!

我想在POSIX系统中用pipe道发送一个整数,但是write()函数用于发送string或字符数据。 有没有办法用pipe道发送整数? 问候

读取不阻塞命名pipe道

我有下面的C代码从pipe道读取,然后应该阻止,但它永远不会阻止 int pipe_fd; int res; int open_mode = O_RDONLY; char buf[100]; int bytes_read = 0; memset (buf, '\0', sizeof(buf)); pipe_fd = open(FIFO_NAME, open_mode); if (access(FIFO_NAME, F_OK) == -1) { res = mkfifo(FIFO_NAME, 0777); if (res != 0) { fprintf (stderr, "Could not create fifo %s\n", FIFO_NAME); exit (EXIT_FAILURE); } } for(;;) { do { res […]

Bash匿名pipe道

当devise一系列命令来执行某个任务时,我遇到了匿名pipe道不像预期那样的问题。 由于我正在运行的原始命令太复杂了,所以在这里我已经创build了一个显示问题的例子(我知道所有这些命令基本上什么都没有做)。 此外,我使用PV来显示数据是否实际上从input复制到输出。 cat /dev/zero | pv > /dev/null 这按预期工作。 (将数据从/ dev / zero复制到/ dev / null) cat /dev/zero | tee /dev/null | pv > /dev/null 这也按预期工作(复制数据并将两个副本发送到/ dev / null) cat /dev/zero | tee >(pv -c > /dev/null) | pv -c > /dev/null 这个命令只有部分工作。 虽然从STDIN到STDOUT的拷贝仍然有效,(一个pv会在短时间内显示进度),但是整个命令会被匿名pipe道阻塞,而这个匿名pipe道并没有收到任何东西,因此其中一个输出不能被写入(我通过让它写入文件而不是/ dev / null来检查这一点)。 如果有人有一个想法,为什么这不起作用(如预期?)在bash中,我会很高兴的帮助。 PS:如果我使用zsh而不是bash,命令按预期运行。 不幸的是,这个需要运行的系统没有zsh,并且我没有办法在部署的系统上获得zsh。

截断内存映射文件

我正在使用内存映射IO的索引文件,但问题是,我不能resize为空的文件。 某处之前: MappedByteBuffer map = raf.getChannel().map(MapMode.READ_WRITE, 0, 1 << 30); raf.close(); // use map map.force(); map = null; 调整: for (int c = 0; c < 100; c++) { RandomAccessFile raf = new RandomAccessFile(indexFile, "rw"); try { raf.setLength(newLen); if (c > 0) LOG.warn("used " + c + " iterations to close mapped byte buffer"); return; […]

mmap和内存使用情况

我正在写一个程序,从networking接收大量的数据(不同大小),处理它们并将它们写入内存。 由于某些数据块可能非常大,我目前的做法是限制使用的缓冲区大小。 如果一个块大于最大缓冲区大小,我将数据写入一个临时文件,稍后读取文件块进行处理和永久存储。 我想知道这是否可以改善。 我一直在阅读有关mmap的一段时间,但是我不是百分之百确定它是否能帮助我。 我的想法是使用mmap来读取临时文件。 这有什么帮助吗? 我关心的主要问题是偶尔的一大块数据不应该填满我的主内存,导致所有的内容都被换出。 另外,你认为临时文件的方法是有用的吗? 我甚至应该这样做,或者,我应该相信linux内存pipe理器为我做这个工作吗? 或者我应该干点什么?

Linux中的pipe道是否会丢失数据?

有多less数据可以包含上限?

进程监控 – Python / Ubuntu / Linux

我有几个需要以deamon模式运行的进程,我刚刚发现了新手,所以我开始使用它。 是否有任何Python库或应用程序,我可以用来监视和控制这些进程从HTML界面? 我在问,因为我想阻止自己重新发明轮子。 🙂 有任何想法吗?

为什么常量存储在C内存映射的文本段中?

你好请考虑下面的代码片段,在Linux机器(64位)上用gcc编译,并带有相应的内存映射 #include <stdio.h> int global = 2; int main(void) { int local = 0; return 0; } text data bss dec hex filename 1092 500 16 1608 648 mem 这里有一个全局variables初始化为2。 它被存储在数据段中考虑使其为const的情况,如下所示 #include <stdio.h> int const global = 2; int main(void) { int local = 0; return 0; } text data bss dec hex filename 1096 […]

打开()时试图打开pipe道读取块

我有两个进程,一个服务器和一个客户端,应该通过pipe道(C ++,Linux)进行通信。 服务器用O_RDONLY标志打开pipe道,用O_WRONLY打开客户端。 然而,服务器在open函数中阻塞,而客户端似乎成功运行( open函数返回成功, write函数也是如此)。 我已经读过,如果O_NONBLOCK标志被设置,读取function将继续,但我不希望它继续,如果没有客户端连接 – 可以阻止, 直到客户端连接 ,但在我的情况下,它仍然阻止即使客户端运行完成后 你能否告诉我我做错了什么? 这里是代码: // Server side int pipe; int status, nr_read = 0; status = mkfifo(FIFO_NAME, 0666); if (status < 0) { // If the file already exists, delete it unlink(FIFO_NAME); // Try again status = mkfifo(FIFO_NAME, 0666); if(status < 0) { printf("mkfifo error: %d\n", […]