朋友。我正在使用Debian Linux(Raspberry Pi),我想在linux启动后自动启动一个程序。 它是一个C程序,它可以在终端上打印ff和文本文件上的fprintf,我编译它并获得exe文件(文件名是测试)路径是/ home / username / try / test,程序可以成功运行,printf和fprintf可以工作。我得到exe文件后,运行命令
sudo chmod +x /home/usernane/try/test
然后我在/home/username/.config中创建一个新文件夹“autostart”然后我运行命令
cd /home/username/.config/autostart
sudo nano test.desktop
我继续写桌面文件:
[Desktop Entry]
Name=test
exec=lxterminal -e "/home/username/try/test"
Type=Application
在此之后,我重新启动。程序可以自动启动,但是当程序启动到fprintf时,程序退出。我在代码中删除fprintf,重做所有内容,程序可以运行成功并且可以printf结果。 问题是fprintf(我想将结果输出到txt文件)!我尝试了很多方法但无法解决。我需要你的建议,谢谢!
我做了以下fprintf :(我正常运行程序(Not Autostart),它可以工作。如果自动启动,程序将退出)
FILE *fp;
char results[50]
/* check if file could be opened */
if((fp=fopen("xy.txt", "w")) == NULL) { // or use "a" instead of "w" to create the file if it doesn't exist
printf("Cannot open file.\n");
exit(1);
}
/* put your results into results[] */
....
/* afterwards writing to file */
fprintf(fp, "%s", results);
fclose(fp);
答案 0 :(得分:0)
你试过这样做吗?:
FILE *fp;
char results[50]
/* check if file could be opened */
if((fp=fopen("test.txt", "w")) == NULL) { // or use "a" instead of "w" to create the file if it doesn't exist
printf("Cannot open file.\n");
exit(1);
}
/* put your results into results[] */
....
/* afterwards writing to file */
fprintf(fp, "%s", results);
fclose(fp);