我試圖重定向使用下一個代碼從一個Arduino(USB),以在計算機的一些文件的輸出:如何正確使用execl?
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
int main()
{
pid_t pid;
pid = fork();
if (pid == 0) {
execl("/bin/cat","cat /dev/cu.usbmodem1421 - 9600 >> data.txt",NULL);
}
printf("Cuando desee terminar la recolección de datos presione cualquier tecla: ");
getchar();
kill(pid, SIGKILL);
return 0;
}
使用ps來驗證,如果一切都很好,我可以看到進程落後於我主程序。停止程序後,數據文件沒有任何內容。我試圖使用system(),這有點討厭,因爲我需要使用OSX終端手動終止程序。我認爲也許syntaxis是錯誤的,我所需要的是添加另一個參數,但似乎沒有任何工作。
'>>「data.txt」'不是一個參數,它是一個在這裏無法使用的shell操作。 – Nabla
夠公平的。就像我說的,我正在從字面上領悟他的命令,給他一個功能的例子。您提供了另一個不嘗試這樣做的理由,而是使用文件I/O來完成任務。 – John