c程序如何启动:
当内核执行C程序时(使用exec函数),在调用main函数之前调用一个特殊的启动例程。可执行文件将此启动例程指定为程序的起始地址---这是由连接编辑器设置的,而连接编辑器由c的编译器调用。同时,启动例程从内核取得命令行参数和环境变量。
进程的终止
总共有8种方式使进程终止,其中前5种正常,后3种不正常。
- 从main返回。在这种方式中,main函数返回后立即调用exit函数。
- 调用exit函数。 这种方式中,exit先执行一些清理处理,包括调用执行处理终止程序,关闭所有标准I/O流等。
- 调用_exit或_Exit函数。 这种方式中,_exit或_Exit立即进入内核。
- 最后一个线程从启动例程返回。
- 最后一个线程调用pthread_exit
- 调用abort。
- 接到一个信号并终止。
- 最后一个线程对取消请求作出响应。
c程序启动终止示意图: