我有一个程序,我正在开发和停止伺服。我可以从命令行发出以下命令,它可以工作。 echo 2=120 > /dev/servoblaster
将启动伺服运动。现在,我有以下程序如何写入文件C
#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
命令它会再次工作。如果我尝试执行我的上述程序3次输出,当我尝试执行echo
命令时,它的输出将是Bad input 2=1202=1202=120 2=120
对我来说,好像该文件没有写完成在我的程序中。有人能指出我是否错过了一些东西吗?
'fflush(FP)'不能后'FCLOSE(FP)来完成'因为关闭指针后不再有效。你应该交换两个电话。 – 2013-04-09 01:48:28