linux c 启动程序吗,Linux下C程序启动时的系统调用
寫程序跟蹤發現,在Linux i386中,一個程序體完全為空的C語言程序啟動時要進行近100個系統調用,如下所示。
[ 1]syscall: 11 //execve
[ 2]syscall: 45 //brk 改變進程的數據段邊界
[ 3]syscall: 45 //brk
[ 4]syscall: 33 //access 確定文件的可存取性
[ 5]syscall: 33 //access
[ 6]syscall: 192 //mmap2 映射虛擬內存頁
[ 7]syscall: 192 //mmap2
[ 8]syscall: 33 //access //access
[ 9]syscall: 33 //access //access
[10]syscall: 5 //open 打開文件
[11]syscall: 5 //open
[12]syscall: 197 //fstat64 取文件系統信息
[13]syscall: 197 //fstat64
[14]syscall: 192 //mmap2
[15]syscall: 192 //mmap2
[16]syscall: 6 //close 關閉文件描述字
[17]syscall: 6 //close
[18]syscall: 33 //access
[19]syscall: 33 //access
[20]syscall: 5 //open
[21]syscall: 5 //open
[22]syscall: 3 //read 讀文件
[23]syscall: 3 //read
[24]syscall: 197 //fstat64
[25]syscall: 197 //fstat64
[26]syscall: 192 //mmap2
[27]syscall: 192 //mmap2
[28]syscall: 192 //mmap2
[29]syscall: 192 //mmap2
[30]syscall: 192 //mmap2
[31]syscall: 192 //mmap2
[32]syscall: 6 //close
[33]syscall: 6 //close
[34]syscall: 33 //access
[35]syscall: 33 //access
[36]syscall: 5 //open
[37]syscall: 5 //open
[38]syscall: 3 //read
[39]syscall: 3 //read
[40]syscall: 197 //fstat64
[41]syscall: 197 //fstat64
[42]syscall: 192 //mmap2
[43]syscall: 192 //mmap2
[44]syscall: 192 //mmap2
[45]syscall: 192 //mmap2
[46]syscall: 6 //close
[47]syscall: 6 //close
[48]syscall: 33 //access
[49]syscall: 33 //access
[50]syscall: 5 //open
[51]syscall: 5 //open
[52]syscall: 3 //read
[53]syscall: 3 //read
[54]syscall: 197 //fstat64
[55]syscall: 197 //fstat64
[56]syscall: 192 //mmap2
[57]syscall: 192 //mmap2
[58]syscall: 192 //mmap2
[59]syscall: 192 //mmap2
[60]syscall: 192 //mmap2
[61]syscall: 192 //mmap2
[62]syscall: 6 //close
[63]syscall: 6 //close
[64]syscall: 33 //access
[65]syscall: 33 //access
[66]syscall: 5 //open
[67]syscall: 5 //open
[68]syscall: 3 //read
[69]syscall: 3 //read
[70]syscall: 197 //fstat64
[71]syscall: 197 //fstat64
[72]syscall: 192 //mmap2
[73]syscall: 192 //mmap2
[74]syscall: 192 //mmap2
[75]syscall: 192 //mmap2
[76]syscall: 192 //mmap2
[77]syscall: 192 //mmap2
[78]syscall: 6 //close
[79]syscall: 6 //close
[80]syscall: 192 //mmap2
[81]syscall: 192 //mmap2
[82]syscall: 243 //set_thread_area 設置線程入口
[83]syscall: 243 //set_thread_area
[84]syscall: 125 //mprotect 設置內存映像保護
[85]syscall: 125 //mprotect
[86]syscall: 125 //mprotect
[87]syscall: 125 //mprotect
[88]syscall: 125 //mprotect
[89]syscall: 125 //mprotect
[90]syscall: 125 //mprotect
[91]syscall: 125 //mprotect
[92]syscall: 125 //mprotect
[93]syscall: 125 //mprotect
[94]syscall: 125 //mprotect
[95]syscall: 125 //mprotect
[96]syscall: 91 //munmap 去除內存頁映射
[97]syscall: 91 //munmap
[98]syscall: 252 //exit_group 結束
程序很簡單
int main()
{
return 0;
}
上次修改時間 2017-02-03
總結
以上是生活随笔為你收集整理的linux c 启动程序吗,Linux下C程序启动时的系统调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1916多少钱一包啊?
- 下一篇: 奥运福娃是谁画的啊?