Linux C 获取进程退出值的实现代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <errno.h>
int main(int argc, char *argv[])
{
pid_t pid;
int stat;
int exit_code;
pid = fork();
if(pid == 0)
{
sleep(3);
exit(5);
}
else if( pid < 0 )
{
fprintf(stderr, "fork failed: %s", strerror(errno));
return -1;
}
wait(&stat); // 等待一个子进程结束
if(WIFEXITED(stat)) // 如果子进程通过 return, exit, _exit 正常结束, WIFEXITED() 返回 true
{
exit_code = WEXITSTATUS(stat);
printf("child's exit_code: %d\n", exit_code);
}
return 0;
}
参考: "man 2 wait"
相关推荐
-
C++基于CreateToolhelp32Snapshot获取系统进程实例
本文实例讲述了C++基于CreateToolhelp32Snapshot获取系统进程的实现方法.分享给大家供大家参考.具体方法如下: // GetWinProcess.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h> #include <TlHelp32.h> int _tmain(int argc, _TCHAR* argv[]) { HANDLE hProcessSnap = C
-
C#获取进程和对进程的操作
最近看到一个考试系统,有个功能是用来监视进程的.一旦发现如Communicator.exe这样的违禁软件就立即杀死进程并上报给服务器.我稍 微研究了一下,这个功能实现起来其实很简单.就是使用ManagementObjectSearcher获取进程列表,然后放在一个Collection 里,之后就可以按照自己的逻辑去做了. 复制代码 代码如下: using System;using System.Management; namespace ConsoleApplication3{ class Pr
-
c#通过进程调用cmd判断登录用户权限代码分享
复制代码 代码如下: /// <summary>/// 应用程序的主入口点./// </summary>[STAThread]static void Main(){ if (RunCmd("net localgroup administrators").IndexOf(System.Environment.UserName) >= 0) { //顺利执行. } else { //报错提示系统不是管理员用户登录,容易导致
-
C#获取Windows进程监听的TCP/UDP端口实例
1.在Windows下用CMD netstat命令可以获得当前进程监听端口号的信息,如netstat -ano可以看到IP.port.状态和监听的PID.那么可以执行CMD这个进程得到监听的端口号信息,C#代码如下: 复制代码 代码如下: //进程id int pid = ProcInfo.ProcessID; //存放进程使用的端口号链表 List<int> ports = new List<int>(); Process pro = new Process(); pro.Sta
-
深入C语言内存区域分配(进程的各个段)详解
C语言可执行代码结构 名称 内容 代码段 可执行代码.字符串常量 数据段 已初始化全局变量.已初始化全局静态变量.局部静态变量.常量数据 BSS段 未初始化全局变量,未初始化全局静态变量 栈 局部变量.函数参数 堆 动态内存分配 (1)代码段(text segment):存放CPU执行的机器指令.通常代码段是可共享的,这使得需要频繁被执行的程序只需要在内存中拥有一份拷贝即可.代码段也通常是只读的,这样可以防止其他程序意外地修改其指令.另外,代码段还规划了局部数据所申请的内存空间信息.
-
C#网络编程基础之进程和线程详解
在C#的网络编程中,进程和线程是必备的基础知识,同时也是一个重点,所以我们要好好的掌握一下. 一:概念 首先我们要知道什么是"进程",什么是"线程",好,查一下baike. 进程:是一个具有一定独立功能的程序关于某个数据集合的一次活动.它是操作系统动态执行的基本单元, 在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元. 线程:是"进程"中某个单一顺序的控制流. 关于这两个概念,大家稍微有个印象就行了,防止以后被面试官问到. 二:进程
-
c++获取进程信息列表和进程所调用的dll列表
复制代码 代码如下: // -----------------------// FileName: // ProcessInfo.h// remarks:// 基于应用层实现,有的进程,如杀软进程等获取不到调用的dll列表.// ----------------------- #pragma once#include <vector> struct ProInfo{ // 保存进程PID unsigned int uPID; // 保存进程名 CString strPr
-
C#获取进程的主窗口句柄的实现方法
通过调用Win32 API实现. 复制代码 代码如下: public class User32API{ private static Hashtable processWnd = null; public delegate bool WNDENUMPROC(IntPtr hwnd, uint lParam); static User32API() { if (processWnd == null) { processWnd = new
-
c语言多进程tcp服务器示例
server.h 复制代码 代码如下: #ifndef SERVER_H#define SERVER_H#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <arpa/inet.h>#include <as
-
C#控制IE进程关闭和缓存清理的实现代码
复制代码 代码如下: class IEUtil { public static void openIE(string url) { try { //System.Diagnostics.Process.Start(url); System.Diagnostics.Process p = new System.Diagnostics.Process(); p.StartInfo.FileName = "iexpl
-
解析C#中用Process类杀死进程,执行命令的深入分析
c#之process类相关整理一.根据进程名获取进程的用户名?需要添加对 System.Management.dll 的引用 复制代码 代码如下: using System.Diagnostics;using System.Management;static void Main(string[] args){foreach (Process p in Process.GetProcesses()){Console.Write(p.ProcessName);Console.Write("----&
随机推荐
- 不错的JavaScript面向对象的简单入门介绍第1/2页
- 高性能HTTP加速器Varnish-3.0.3搭建、配置及优化步骤
- perl数组的多数字下标示例代码
- 解析.Net 4.0 中委托delegate的使用详解
- Js过滤空格的实现代码
- js表单处理中单选、多选、选择框值的获取及表单的序列化
- JavaScript通过join函数连接数组里所有元素的方法
- Android开发技巧之在a标签或TextView控件中单击链接弹出Activity(自定义动作)
- CentOS下重置MySQL的root密码的教程
- 实现自动清除日期目录shell脚本实例代码
- 微信小程序中使用Promise进行异步流程处理的实例详解
- jQuery视差滚动效果网页实现方法经验总结
- div+css+js模拟tab切换效果 事件绑定 IE,firefox兼容
- C# 的析构以及垃圾回收实例分析
- Android中的Intent Filter匹配规则简介
- linux下安装boost库的完整步骤记录
- Java实现滑动验证码的示例代码
- Vue的watch和computed方法的使用及区别介绍
- 将Java程序的输出结果写到txt文件中的方法
- 详解python解压压缩包的五种方法