朋友。我正在使用Debian Linux(树莓派),我想在Linux启动后自动启动一个程序。它是一个C程序,它可以在终端和fprintf上打印一个文本文件,我已经编译并获得了exe文件(文件名是test)路径是/ home/username/try/test,程序可以成功运行,printf和fprintf可以工作。我的exe文件后,我运行命令在Linux中自动启动应用程序,输出失败
sudo chmod +x /home/usernane/try/test
然后我/home/username/.config创建一个新的文件夹“自动”然后我运行命令
cd /home/username/.config/autostart
sudo nano test.desktop
我继续写桌面文件:
[Desktop Entry]
Name=test
exec=lxterminal -e "/home/username/try/test"
Type=Application
之后,我重新启动。程序可以自动启动,但是当程序启动到fprintf时,程序退出。我在代码中删除fprintf,重做一切,程序可以运行成功并可以打印结果。 所以问题是fprintf(我想输出结果到一个txt文件)!我尝试了很多方法,无法解决。我需要你的建议,谢谢!
我做fprintf中的以下内容:(一恢复正常运行(不自动启动程序),它可以工作。如果自动启动,应用程序将退出)
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);
我建议添加快速指导的代码。 – Jeyaram
感谢您添加代码。建议:为“xy.txt”指定一个绝对路径,您知道的某个目录将始终存在,并始终可写。 – FoggyDay
@FoggyDay你是对的。如果自动启动需要添加路径 – Henry