linux 编程碰到的2个问题

发布于 2022-09-30 06:50:33 字数 806 浏览 15 评论 0

我用的redhat ,好像是9点几的版本
1。《unix环境高级编程》中的program8.2关键部分代码如下:
glob = 1, var = 2;
printf ("before vfork\n");
if ( (pid = vfork()) < 0)
      err_sys ("vfork error");
else if (pid == 0) {
      glob++;
      var++;
      _exit (0);
  }
  printf ("glob = %d, var = %d", glob, var);

运行输出是
before vfork
glob = 2, var = 3
书中说如果把子进程中的_exit(0), 换成exit (0), 输出就变成了
before vfork
但我是试了一下,结果仍然输出了glob和var那一行。不知道为什么?

2。(我的或版本相似的)redhat的文件夹是不是只能有9层?
  我按 建文件夹, 进文件夹, 再建文件夹 的循环做,建到第九层就不能建文件夹了

附:有没有命令能擦看到redhat的版本?

先提前谢谢大家回答

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你的他你的她 2022-10-07 06:50:33

文件夹层数绝对不止 9 层,但是路径总长度是有限的。

RedHat 发行版的版本记录在 /etc/redhat-release 文件中,Linux 内核版本用 uname -r 查看。

于我来说 2022-10-07 06:50:33

1、在linux中,exit和_exit函数并不关闭任何I/O流,因此两者效果一样。
   在Solaris中,exit只关闭和刷新普通I/O流,而不关闭标准流(stdin,sdout,stderr),_exit函数则不关闭任何流。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文