linux c中return 与exit的区别

1.

return 是c语言中的关键字,而exit是linux中的系统调用。

return是表示函数的返回,而exit是进程的终止。

如果return 或者exit出现在main函数中,两者的作用是一样。

如果return出现在子程序中表示返回,而exit出现在子进程中表示终止子进程。

2.

通常情况:exit(0)表示程序正常, exit(1)/exit(-1)表示程序异常退出,exit(2)表示表示系统找不到指定的文件。用Error lookup可以查看

exit()结束当前进程/当前程序/,在整个程序中,只要调用exit就结束(当前进程或者在main时候为整个程序)

return()是当前函数返回,当然如果是在主函数main, 自然也就结束当前进程了,如果不是,那就是退回上一层调用。在多个进程时.如果有时要检测上进程是否正常退出的.就要用到上个进程的返回值,依次类推。

exit(1)表示进程非正常退出返回1;

exit(0)表示进程正常退出返回0.

进程环境与进程控制(1): 进程的开始与终止

 exit(int n)其实就是直接退出程序,因为默认的标准程序入口为 int main(int argc, char** argv),返回值是int型的。一般在shell下面,运行一个程序,然后使用命令echo $?就能得到该程序的返回值,也就是退出值,在main()里面,你可以用return n,也能够直接用exit(n)来做。unix默认的习惯正确退出是返回0,错误返回非0

   理论上exit可以返回小于256的任何整数。返回的不同数值主要是给调用者作不同处理的。
单独的进程是返回给操作系统的。如果是多进程,是返回给父进程的。父进程里面调用waitpid()等函数得到子进程退出的状态,以便作不同处理。根据相应的返回值来让调用者作出相应的处理.总的说来,exit()就是当前进程把控制权返回给调用该程序的程序,括号里的是返回值,告诉调用程序该程序的运行状态

1. 进程的开始:
C程序是从main函数开始执行原型如下:
int main(int argc, char *argv[]);
通常main的返回值是int正确返回0.
 如果main的返回值为void或者无某些编译器会给出警告此时main的返回值通常是0.(看我blog下面关于return函数的介绍就知道,事实上main函数是没有void main()这样的声明的,一定要在main的结束有返回值,需要返回什么类型的值,就返回这个类型的值。通常为int型的0值表示成功返回)

关于main的命令行参数不做过多解释以下面的程序展示一下:

[c-sharp]  view plain copy
  1. #include <stdio.h>  
  2. int main(int argc, char *argv[])  
  3. {  
  4.      
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值