返回介绍

1.3 入口函数

发布于 2024-10-12 21:58:08 字数 1255 浏览 0 评论 0 收藏 0

也称作主函数,用户代码入口,有三种不同参数签名。

int main(void);
int main(int argc, char *argv[]); // int main(int argc, char **argv);
int main(int argc, char *argv[], char *envp[])
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[], char *envp[])
{
    for (int i = 0; i < argc; i++) {
        puts(argv[i]);
    }

    while (*envp) {
        puts(*envp++);
    }

    return EXIT_SUCCESS;
}

退出

任何位置都可调用 exit 函数终止进程。

返回 0EXIT_SUCCESS 表示正常退出。其他,比如 EXIT_FAILURE 表示执行异常。如果 main 没有 return ,则默认表示 return 0

进程终止前( exitmain return ),将执行如下操作:

  • 执行 atexit 注册的清理函数。
  • 关闭所有 C stream。
  • 删除临时文件( tmpfile )。

还有一种 quick_exit ,终止进程但不清理相关资源。

_Noreturn void exit( int exit_code );
void test ()
{
    void a() { puts("a"); }
    void b() { puts("b"); }
    void c() { puts("c"); }

    atexit(a);    // FILO: c b a
    atexit(b);
    atexit(c);

    exit(0);
}

int main (void) 
{
    test();
    return EXIT_SUCCESS;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文