我有一个正在开发的程序,它将启动和停止伺服。我可以从命令行发出以下命令并且它可以工作。echo 2=120 > /dev/servoblaster
这将启动伺服运动。现在我有以下程序
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
FILE *fp;
fp = fopen("/dev/servoblaster", "w");
if (fp == NULL) {
printf("Error opening file\n");
exit(0);
}
fprintf(fp, "2=120");
fclose(fp);
fflush(fp);
return 0;
}
但是当我执行它时没有任何反应,现在当我尝试echo 2=120 > /dev/servoblaster
命令时它会说Bad input: 2=1202=120
但是如果我重复相同的echo 2=120 > /dev/servoblaster
命令它会再次工作。如果我在尝试执行echo
命令时尝试执行上面的程序 3 次输出,Bad input 2=1202=1202=120 2=120
那么它的输出对我来说似乎是文件没有完成在我的程序中写入。有人可以指出我是否遗漏了什么?