当前位置: 首页 > wzjs >正文

网站建设中管理员登录的代码怎么写关于制作网站的方案

网站建设中管理员登录的代码怎么写,关于制作网站的方案,最近国语视频在线观看,新手怎么开传媒公司📜 函数原型 pid_t waitpid(pid_t pid, int *status, int options);🔑 参数详解 pid: 要等待的子进程 PID,可以指定特定的进程或进程组。 > 0: 等待特定 PID 的子进程。 -1: 等待任意子进程(行为类似 wait())。 …

📜 函数原型

pid_t waitpid(pid_t pid, int *status, int options);

🔑 参数详解

  1. pid: 要等待的子进程 PID,可以指定特定的进程或进程组。

    • > 0: 等待特定 PID 的子进程。

    • -1: 等待任意子进程(行为类似 wait())。

    • 0: 等待与调用进程同一进程组的任意子进程。

    • < -1: 等待特定进程组的子进程。

  2. status: 子进程状态的输出,可以通过宏(如 WIFEXITED, WEXITSTATUS)来解析。

  3. options: 控制等待行为的选项(可组合)。

    • WNOHANG: 非阻塞模式,若没有子进程退出,立即返回 0

    • WUNTRACED: 报告已停止的子进程状态。

    • WCONTINUED(Linux 特有):报告已恢复的子进程状态。


💡 返回值

  • 成功: 返回子进程的 PID。

  • 失败: 返回 -1,并设置 errno(常见错误:ECHILD 无子进程,EINTR 被信号中断)。

  • 非阻塞模式(WNOHANG: 若无子进程退出,返回 0


🧐 状态解析宏

通过 status 参数获取子进程的退出原因:

  1. 正常退出:

    • WIFEXITED(status):若为真,表示子进程正常退出。

    • WEXITSTATUS(status):获取子进程的退出码。

  2. 被信号终止:

    • WIFSIGNALED(status):若为真,表示子进程被信号终止。

    • WTERMSIG(status):获取导致终止的信号编号。

  3. 被信号暂停(需 WUNTRACED 选项):

    • WIFSTOPPED(status):若为真,表示子进程被暂停。

    • WSTOPSIG(status):获取导致暂停的信号编号。

  4. 恢复执行(需 WCONTINUED 选项):

    • WIFCONTINUED(status):若为真,表示子进程从暂停状态恢复。


⚡ 典型用法

1. 阻塞等待特定子进程
pid_t child_pid = fork();
if (child_pid == 0) {// 子进程代码exit(42);  // 子进程正常退出
} else {int status;pid_t ret = waitpid(child_pid, &status, 0);  // 等待特定子进程if (ret == child_pid) {if (WIFEXITED(status)) {printf("Child exited with code %d\n", WEXITSTATUS(status)); // 输出 42}}
}
2. 非阻塞轮询子进程状态
int status;
pid_t ret;
while ((ret = waitpid(-1, &status, WNOHANG)) > 0) {  // 非阻塞模式// 处理已退出的子进程
}
if (ret == 0) {// 没有子进程退出,继续执行其他任务 💼
} else if (ret == -1) {// 错误处理 🛑
}
3. 处理被信号终止的子进程
if (WIFSIGNALED(status)) {printf("Child killed by signal %d 💥\n", WTERMSIG(status));
}

📝 注意事项

  1. 僵尸进程: 如果父进程没有调用 waitpid(),子进程将变成僵尸进程(Zombie),占用系统资源 ⚠️。

  2. 信号处理: 在 SIGCHLD 信号处理函数中调用 waitpid() 可以及时回收子进程 🛠️。

  3. 多线程安全: 在多线程环境中使用时需谨慎,以避免竞争条件 ⚔️。

  4. 错误处理: 在出现错误时需要检查 errno,区分不同的错误类型 ❗。


🤔 wait() vs waitpid()

特性wait()waitpid()
目标子进程任意子进程可指定 PID 或进程组
阻塞行为总是阻塞支持非阻塞(WNOHANG 选项)
扩展状态信息不支持支持(如 WUNTRACED

🌐 总结

通过 waitpid(),开发者可以精确地控制子进程的等待行为,适用于需要管理多个子进程或者非阻塞式进程监控的场景。掌握它就像拥有了监控多任务的神奇能力 🧙‍♂️。

http://www.dtcms.com/wzjs/828824.html

相关文章:

  • 网站建设费会计处理网站建设链接怎么加上去
  • 网站做百度推广为什么没人咨询国外比较好的设计网站
  • 网站开发者工作内容一键logo生成器在线
  • 广州网站建设商域通联达网站
  • 装修公司网站平台rttheme 18 wordpress
  • 网站建设 上寻模板大港手机网站建设
  • 有关建设网站的英语文献网站搭建好显示建设中
  • 老鹰画室网站哪家做的网页版qq登录入口空间
  • 高中资料网站免费网站是新媒体平台吗
  • 南京建设银行网站首页自己做的网站怎么接入网页游戏
  • 网站信息同步开发公司购买开发公司的房屋如何报税
  • 四川城乡建设部网站首页电子商务网站开发 php
  • 自己做的网站怎么发布上长沙点看网络科技有限公司
  • 济南软月建站做私人小网站赚钱吗
  • 聊城制作手机网站百度seo设置
  • 做团餐 承包食堂的企业网站notepad++ wordpress
  • 建设银行查余额网站开封网站优化公司
  • 网站建设用书236企业邮箱登录入口
  • 公司做网站的费用怎么入账优化大师最新版下载
  • 莒南县网站建设360免费建站永久免费
  • 做网站一定需要icp么个人备案的网站可以做商城吗
  • 直接ip访问网站比较高端的网页
  • 网站搭建是哪个岗位做的事儿洛阳市新区建设投资有限公司网站
  • 做电脑端网站手机端能搜到吗遵义市公共资源交易平台
  • 医学关键词 是哪个网站做网页布局设计技术
  • 深圳龙华建设发展公司seo优化软件有哪些
  • 个人网站是怎么样的wordpress 多重筛选
  • php网站开发考试网站提示危险怎么办
  • 腾云建站官网腾讯服务器租用
  • 免费网站建站排名沐川移动网站建设