Linux下C程序都是main開始的,main函數的原型是:數組
int main(int argc, char **argv)
其中argc是命令行參數的數目,argc是指向參數的各個指針所構成的數組。函數
C程序中有3個函數用於正常終止一個進程,_exit和_Exit當即進入內核,exit則作一些清理工做後後進入內核,好比清理IO緩衝區數據,對於全部打開的流進行close操做。 這3個函數都帶一個整型參數,成爲終止狀態。spa
#include <stdlib.h> void exit(int status); void _Exit(int status); #include <unistd.h> void _exit(int status);
atexit函數命令行
atexit函數用來登記終止處理函數,按照ISO C的規定,一個進程最多能夠登記32個函數,這些函數將由exit函數自動調用。進程終止時,exit首先調用各終止函數,而後關閉打開的流。3d
#include <stdio.h> int atexit(void (*func)(void));
使用atexit函數登記進程終止函數:指針
#include <stdio.h> void my_exit1(void) { printf("my_exit1\n"); } void my_exit2(void) { printf("my_exit2\n"); } int main(int argc, char **argv) { atexit(my_exit1); atexit(my_exit2); printf("hello world\n"); return 0; }
輸出結果:code
每一個進程都有一個環境表,與參數表同樣,環境表也是一個指針數組:對象
一般用getenv和putenv函數來訪問特定的環境變量,而不是environ變量。可是,若是要查看整個環境,則必須使用environ指針。blog
任何程序的內存空間均可分爲4個基本部分,各個部分的首地址是固定的。進程
C程序中有3個用於空間動態分配的函數: