Linux -- 自啟動程序的調試信息輸出


自啟動的程序,如果在程序使用 printf、puts 等輸出函數,在終端是不會有任何輸出的,那么對於程序調試階段的一些debug信息不能直觀的看到,下面幾種簡單的方式,可以嘗試一下。

一、如果想要在終端上打印數據,並且數據量少的情況下

1、可以使用 fprintf 重定向輸出即可。

 1 #include <stdio.h>
 2 
 3 int main(int argc, const char **argv)
 4 {
 5     FILE *fs;
 6 
 7     fs = fopen("/dev/console", "w+");
 8     fprintf(fs, "debug message.\n");
 9     fclose(fs);
10     
11     return 0;
12 }

2、簡單的調試信息,可以直接使用重定向來實現

1 #include <stdio.h>
2 #include <stdlib.h> // system
3 
4 int main(int argc, const char **argv)
5 {
6     system("echo debug message > /dev/console");
7     
8     return 0;
9 }

或者

 1 #include <stdio.h>
 2 #include <stdlib.h> // system
 3 
 4 int main(int argc, const char **argv)
 5 {
 6     char *p = "this is a test";
 7     char cmd[128] = {0};
 8 
 9     sprintf(cmd, "echo line = %d, buf = %s > /dev/console", __LINE__, p);
10     system(cmd);
11 
12     return 0;
13 }

二、寫入到文件中

1、針對上面這個歷程,如果調試的信息比較多,那么可以將信息重定向到文件中,可直接將

sprintf(cmd, "echo line = %d, buf = %s > /dev/console", __LINE__, p);

替換成文件名稱,比如 filename

1 sprintf(cmd, "echo line = %d, buf = %s >> filename", __LINE__, p);

注意:

>> 而不是 > ,區別就是 追加覆蓋

2、其他的各種文件IO操作的函數,請自行ABCD(^_^)!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM