在Linux操作系统中进行C语言代码开发,必须对Linux系统有足够的了解,包括代码的运行机制、内存分配机制、系统调用和库函数等。

1、C语言代码的运行机制 

        Linux中的程序是一个在磁盘上的可执行文件,内核调用一个exec函数将这个可执行文件调入到存储器中然后执行,这个程序的执行实例被称为进程,在Linux中每个进程都对应一个唯一的非负数字标识符,称为进程ID。

        对于一个进程而言,其有8种方式可以返回使得其终止,对于这些方式的说明如下:

  •         1) 在main函数中使用return语句返回
  •         2) 调用exit函数终止进程
  •         3) 调用_exit_或者_Exit函数终止进程
  •         4) 调用一个线程从其启动例程返回
  •         5) 最后一个线程调用了prhread_exit函数
  •         6) 调用abort函数
  •         7) 接到一个信号并且终止
  •         8) 最后一个线程对取消请求做出了响应

        这些方式的前5种为正常终止一个进程,后三种是异常终止,如1是Linux操作系统启动和终止一个应用程序的示意图。

                                 Linux中C语言代码的运行机制

                                                                          图1 Linux下的代码运行

       总之,在Linux操作系统中,内核使程序执行的唯一方法是调用一个车exec函数,进程自愿终止的唯一方法是显式或者隐式地调用_exit或者_Exit,又或者使用一个外部信号来使得该进程终止。

       通常来说,在Linux中运行一个用户自行设计的可执行文件的流程可以简单表达,如图2所示。

                                                          Linux中C语言代码的运行机制

                                                                        图2 用户程序的运行过程

相关文章: