linux 编程碰到的2个问题
我用的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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
文件夹层数绝对不止 9 层,但是路径总长度是有限的。
RedHat 发行版的版本记录在 /etc/redhat-release 文件中,Linux 内核版本用 uname -r 查看。
1、在linux中,exit和_exit函数并不关闭任何I/O流,因此两者效果一样。
在Solaris中,exit只关闭和刷新普通I/O流,而不关闭标准流(stdin,sdout,stderr),_exit函数则不关闭任何流。