【问题标题】:UNIX c programming [closed]UNIX c编程[关闭]
【发布时间】:2026-02-07 01:15:01
【问题描述】:

谁能告诉我你会怎么做这个问题?

为 UNIX/Linux 操作系统编写简短的 C 程序,执行以下操作:

  • fork 一个子进程
  • 父进程打印出自己的pid和子进程的pid
  • 父级正确退出,以免使其子级成为孤儿
  • 子进程将自己的优先级设置为 2
  • 子进程打印出它自己的 pid、它的父进程的 pid 和它自己的优先级
  • 子进程在完成前检查是否为孤儿;如果它是孤儿,它会打印一条消息说“我是孤儿”。

您不需要在程序中进行任何错误检查。您不需要列出所有 C 库包含文件,即 .h 文件。

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为 SO 不是代码编写服务。
  • 我需要知道明天该怎么做,但不知道:(
  • 但首先要表现出你的努力
  • 我会从man fork开始。
  • 这里有一些帮助您入门的参考资料: > fork 一个子进程参见linux.die.net/man/2/fork > 父进程打印出它自己的 pid 和它 > 子进程的 pid 使用来自 fork(2) 的返回值和查看linux.die.net/man/2/getpid > 子进程将自己的优先级设置为2 查看linux.die.net/man/2/nice > 子进程打印出自己的pid、父进程的pid 和自己的优先级 查看linux.die.net/man/2/getpidlinux.die.net/man/2/getppid

标签: c++ c linux unix operating-system


【解决方案1】:

由于堆栈溢出对我来说绝不是编写代码,请在网站上提供唯一的“答案”,我们可以为您提供关于在哪里查找的建议。考虑到这一点,请查找 pthreads。除此之外,我不希望人们给你任何东西 截止日期是你的问题而不是我们的问题。

【讨论】:

  • fork(); getpid(); printf("Childs pid is %d" \n); exit(0); nice(8); getppid; printf("Parents pid is %d" \n); ????