簡體   English   中英

Linux中的自動啟動應用程序,輸出失敗

[英]Autostart application in Linux, output fail

朋友們。 我正在使用Debian Linux(Raspberry Pi),我想在Linux啟動后自動啟動程序。 這是一個C程序,可以在終端上運行printf,在文本文件上運行fprintf,我已經對其進行編譯並得到exe文件(文件名為test),路徑為/ 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:(我正常運行程序(不是自動啟動),它可以工作。如果自動啟動,程序將退出)

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); 

您是否嘗試過這樣做?

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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM