最近,我的任务是定制我们小组经常使用的应用程序之一。该应用程序是用 C 语言编写的,我没有太多经验。我找到了一些我正在尝试做的功能示例,但到目前为止还无法将其完全集成到我的测试平台中。
要求很简单:打开一个命名管道并推送一些数据,以便另一个组可以读取管道并使用它做一些事情。必须这样做,以免中断服务器执行其操作。
我的应用程序有一个名为 history 的数组,其中包含我所追求的所有必要值。到目前为止,我尝试实现这一目标的结果喜忧参半。请看下面的代码片段:
DCmass_add_history(history, history_num);
int fd;
char * myfifo = "/tmp/fooPipe";
/* create the FIFO (named pipe) */
mkfifo(myfifo, 0666);
/* open FIFO (named pipe) */
fd = open(myfifo, O_WRONLY);
for (i = 0; i < history_num; i++) {
/* Write our data to our FIFO (named pipe) */
fprintf(fd, "%d %d %f %f", history[i].id, history[i].clock, history[i].value, history[i].ns);
}
close(fd);
我以前在使用write
而不是时取得了一些成功,fprintf
但无法将任何变量放入我的管道中。
从前面的堆栈溢出示例,堆栈溢出示例中,我能够得到一个基本的阅读器来测试我的管道,以及上面的基本代码来打开我的管道。