日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux中相关知识(atexit(),fork(),粘滞位)

發布時間:2024/4/14 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux中相关知识(atexit(),fork(),粘滞位) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1atexit()函數

? ? ? 函數名: atexit

  頭文件:#include<stdlib.h>

  功 能: 注冊終止函數(即main執行結束后調用的函數)

  用 法: int atexit(void (*func)(void));

  注意:一個進程可以登記32個函數,這些函數由exit自動調用,這些函數被稱為終止處理函數,atexit函數可以登記這些函數。 exit調用終止處理函數的順序和atexit登記的順序相反,如果一個函數被多次登記,也會被多次調用。

  程序例:

  #include <stdio.h>

  #include <stdlib.h>

  void exit1()

  {

   ? ?printf("Exit1 called\n");

  }

  void exit2()

  {

   ? printf("Exit2 called\n");

} int main(void)

  {

  atexit(exit1);

  atexit(exit2);

  return 0;

  }

輸出:

  Exit2 called

  Exit1 called

由此結果可知:注冊函數的順序與調用函數的順序相反

  進程的終止方式:

  有8種方式使進程終止,其中前5種為正常終止,它們是

  1:從 main 返回

  2:調用 exit

  3:調用 _exit 或 _Exit

  4:最后一個線程從其啟動例程返回

  5:最后一個線程調用 pthread_exit

  異常終止有3種,它們是

  6:調用 abort

  7:接到一個信號并終止

  8:最后一個線程對取消請求做出響應

2、粘滯位

? ? Sticky 位是一個訪問權限標志位,可以用來標示文件和路徑。最常見的用法在目錄上設置粘滯位,如此以來,只有目錄內文件的所有者或者root才可以刪除或移動該文件。如果不為目錄設置粘滯位,任何具有該目錄寫和執行權限的用戶都可以刪除和移動其中的文件。實際應用中,粘滯位一般用于/tmp目錄,以防止普通用戶刪除或移動其他用戶的文件。

普通文件的sticky位會被linux內核忽略,??
目錄的sticky位表示這個目錄里的文件只能被owner和root刪除??

比如:添加粘滯位到路徑/usr/local/tmp,

1.??????chmod +t /usr/local/tmp

2.??????chmod?1777 /usr/local/tmp

3、fork()函數

fork函數
#include <unistd.h>
pid_t fork(void);
一個現有進程可以調用fork創建一個新進程。
返回值: 子進程中返回0,父進程中返回子進程ID,出錯返回-1。

注意:子進程是父進程的副本。例如:子進程獲得父進程數據空間、堆和棧的副本(主要是數據結構的副本)。 父子進程不共享這些存儲空間部分。父子進程共享正文段。

分析一下代碼:

?

?

?

?

分析

?

轉載于:https://www.cnblogs.com/Blog-day/p/My_Blog_Days1-12.html

總結

以上是生活随笔為你收集整理的Linux中相关知识(atexit(),fork(),粘滞位)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。