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这个返回值表示命令成功执行