自啟動的程序,如果在程序使用 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、針對上面這個歷程,如果調試的信息比較多,那么可以將信息重定向到文件中,可直接將
是 >> 而不是 > ,區別就是 追加 和 覆蓋 。
2、其他的各種文件IO操作的函數,請自行ABCD(^_^)!