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、针对上面这个历程,如果调试的信息比较多,那么可以将信息重定向到文件中,可直接将
是 >> 而不是 > ,区别就是 追加 和 覆盖 。
2、其他的各种文件IO操作的函数,请自行ABCD(^_^)!