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(^_^)!

posted @ 2020-01-13 10:47  我就叫宋帅呀  阅读(1207)  评论(0编辑  收藏  举报