这个例子里面其实是将异常退出处理和正常退出处理结合起来了旅郑枝。对于SIGTERM(即kill进程)和SIGINT(即ctrl-c结束前台进程),我们当做是正常退出,在其信号处理函数里面,直接调用了exit(0),而exit(0)又会被server_on_exit捕获到。对于异常退出也是类似,只是调用了exit(-1)表示是异常的。同时异常退出我们会打印出当前的进程堆栈信息,server_backtrace的实现下一篇再说。另外注意的是SIGKILL信号是无法捕获的。而调用abort导致的退出,也是通过SIGABRT信号捕获到进行处理了。其他几种异常退出的信号也是比较常见,一并捕获到进行处理。这样对于异常退出,我们即可统一的log堆栈信息,又可直接继续正常退出时的处理流程了。
C语言在Linux上的应用主要是三种,Server端坦伏应用、内核应用和嵌入式应用。Server端应用就写各种服务器,了解各种通讯协议,在具体实践中按项目需要学习。内核应用一般是数据包处理和驱动开发,知睁猜识点和嵌入式开发有重叠。嵌入式开发是编写非x86的异构平台上的应用,通过交叉环境,在PC上开发,在目标芯片上运行。Linux开发是嵌入式开发最常用的一种。通过学习嵌入式Linux开发,能掌握交叉编悉信型译环境的搭建和使用、Linux内核编译和剪裁、硬件驱动及应用程序开发等。学习方法是买套嵌入式开发板,最好有配套的视频教程,按教程一步一步学习。C语言很枯燥,没有UI,如果单纯的按书本学习编程很难坚持下去,只有跟硬件结合才能提高趣味性。
在Linux开发环境下,GCC是进行C程序开发不可缺少的编译工具。GCC是GNU C Compile的缩写,是GNU/Linux系统下的标准C编译器。虽然GCC没有集成的开发环境,但堪称是目前效率很高的C/C++编译器。《linux就该这么纯神学》非常值得您一看。Linux平台下C程序开发贺或步骤如下:1.利用编辑器把程序的源代码编写到一个文本文件中。
比如编辑test.c程序内容如下:
/*这是一个测试程序*/
#include<stdio.h>
int main(void)
{
printf("Hello Linux!")
}
2.用C编译器GCC编译连接,生成可执行文件。
$gcc test.c
编译完成后,GCC会创建一个名为a.out的文件。如果想要指定输出文件,可以使用选项-o,命令如下所示:
$gcc-o test1 test.c
这时可执行文件名就变为test1,而不是a.out。
3.用C调试器调试程序。
4.运行该可执行文件。 在此例中运行的文件是:
$./a.out 或者 test1
结果将得出:
Hello Linux!
除了编译器外,Linux还提供了调试工具GDB和程序自动维护禅裤伍工具Make等支持C语言编程的辅助工具。如果想要了解GCC的所有使用说明,使用以下命令:
$man gcc
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)