1. linux里關於exit(0)和wait(0)
第一個是退出,第二個是等待呀!
2. linux里main()里使用fork()函數,exit(0)為什麼不是退出main
fork()產生一個新的進程,此時和父進程一起就有了兩個進程實例,通過pid區分,不版完全准確的比喻就是有了兩權個程序分支。但是父進程、子進程的代碼都包含了全部的,父進程或子進程完成它的工作後要用退出了,不然剩下的代碼還是會執行下去的。exit(0)是結束進程
3. Linux中的進程問題,以及exit(0); 和sleep(5);
俺跟你解釋一下:
fork是一個跟當前進程一模一樣的進程,包括當前進程的所有狀態(有特殊設置就不會拷貝,如文件標識)。子進程如果不設置新的執行程序,會繼續執行fork之後的代碼,注意前面提過的跟父進程一模一樣的代碼。
pid==0代表是子進程,因此子進程會執行這段代碼:
if(pid==0)
{
printf("child!!! ");
//這里會造成子進程的主線程,main執行線程,阻塞5秒
sleep(5);
exit(0);
}
pid > 0 代表是父進程,因此父進程繼續執行的代碼為:
if(pid>0)
{
//此處必須等待子進程結束,子進程調用exit(0),時會通知父進程繼續執行
//屬於進程間通訊、同步的一個手段之一。那子進程等待5秒被喚醒,執行exit(0)
//父進程收到通知,獲取到子進程的退出狀態,繼續就會printf,基本也就是等待了5秒
//然後父進程return0等價於exit(0)正常結束
wait(NULL);//不這樣寫,父進程直接結束可能會產生僵屍進程,也可能變成孤兒進程由
//由init進程領養,並正確結束。通用的做法必須wait。根據操作系統以及版本不同處理
//方式可能不一樣,如aix可能就會有僵屍進程產生
printf("father!!! ");
}
4. linux下,shell腳本中,最後一句done exit 0,系統永遠提示done not found怎麼回事,程序如下
你#!/bin/sh 換成#!/bin/bash 測隱鎮一下呢
因為你中間涉及到了調用別的腳本,我沒法直接復制你腳本看報錯。
從語法上目前我只看到你的if 語句寫的有問題,
比如
["$i"做喚 -le 225 ]; #缺少空格
[ "$i" -le 225 ];then
下灶胡粗邊的elif 也是
5. 關於linux下vfork()函數創建進程和exit()問題
不應該啊!怎麼還一直列印******* 呢?可能子進程通過return 0後沒有結束,而是重新開始運行了。可能是vfork的機製造成的吧。
剛看了下網路里的介紹。這個果然是vfork的機制導致的。因為vfork保證子進程先運皮遊行,而且要子進程結束後才繼續運行父進程。如果燃肢銷子進程沒有exit或者exec,那麼就會一直fork下去導飢碼致出現很多進程。
6. linux 用戶退出怎麼命令
用戶碼察咐退出登錄的方法有以下三種:
1、在shell提示符下輸入 exit 按回車確認
2、在shell提示符下輸入 logout 按回車確認
3、按快捷鍵crtl+d (此方沒敏法同logout效果)
Linux常用命令之——退出、切換用戶exit、su
exit命令同於退出shell,並返回給定值,在shell腳本中可以終止當前腳本執行,執行exit可使shell以指定的狀態值退出。
若不設置狀態值參數,則shell以預設值退出,狀態值0代表執行成功,其他值代表執行失敗。
su命令用於切換當前用戶身份到其他用戶身份,變更時須輸入所要變更的用戶帳號與密碼。
選項:遲純
-c<指令>或--command=<指令>:執行完指定的指令後,即恢復原來的身份;
-f或——fast:適用於csh與tsch,使shell不用去讀取啟動文件;
-l或——login:改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變數;
-m,-p或--preserve-environment:變更身份時,不要變更環境變數;
-s<shell>或--shell=<shell>:指定要執行的shell;
--help:顯示幫助;
--version;顯示版本信息。
7. Linux C 編程中遇到諸如 exit(0),exit(1),exit(2),exit(3)等之類的 函數,請問怎麼理解
linux 里每一個可執行程序運行結束後都有一個返回值(或者叫結束值), 這個值為0表示正常,其他值則代表錯誤代碼。所以 exit(N) 就表示這個程序結束,其返回值為 N。
8. linux系統 運行/etc/rc.local後,在在exit 0前面添加了/etc/init.d/ssh start
/etc/init.d/sshd start
9. linux進程不調用exit函數,算不算退出
加 exit() 直接退出 ,不加繼續 執行 sleep()
10. linux命令後添加 exit 0什麼意思
&&表示如果前面的命令成功執行則繼續後面的命令,exit退出當前shell並且返回0,0這個返回值表示命令成功執行