Shipfi (春暖花开,开满我的阳台)
刹那风波翻过, 一转眼从前便已难复再
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 209 文章- 73 评论- 62
一个通用的调用shell命令及打印退出状态的C语言实现
1
#include
<
stdio.h
>
2
#include
<
stdlib.h
>
3
#include
<
unistd.h
>
4
#include
<
string
.h
>
5
#include
<
sys
/
wait.h
>
6
7
8
void
pr_exit(
int
status)
9
{
10
if
(WIFEXITED(status))
11
printf(
"
normal termination exit status=%d\n
"
,WEXITSTATUS(status));
12
else
if
(WIFSIGNALED(status))
13
printf(
"
abnormal termination,signal number=%d%s\n
"
,WTERMSIG(status),
14
#ifdef WCOREDUMP
15
WCOREDUMP(status)
?
"
(core file gernerated)
"
:
""
);
16
#else
17
""
);
18
#endif
19
else
if
(WIFSTOPPED(status))
20
printf(
"
child stopped,signal number=%d\n
"
,WSTOPSIG(status));
21
}
22
23
int
main(
int
argc,
char
**
argv)
24
{
25
int
status;
26
char
commd[
255
]
=
""
;
27
int
i;
28
if
(argc
<
2
)
29
{
30
printf(
"
command-line argument required\n
"
);
31
return
-
1
;
32
}
33
for
(i
=
1
;i
<
argc;i
++
)
34
{
35
strcat(commd,argv[i]);
36
commd[strlen(commd)]
=
'
'
;
37
}
38
if
((status
=
system(commd))
<
0
)
39
{
40
printf(
"
Command error
"
);
41
return
-
1
;
42
}
43
44
pr_exit(status);
45
return
0
;
46
}
47
程序有两个功能:
1. 使用system函数调用shell命令,shell命令在启动程序参数中给出。
2. shell程序退出时可以获得其退出状态。
以上程序是根据APUE里的例子来实现的。可以参考8.6和8.13节。
posted @ 2008-04-18 16:31
shipfi
阅读(95)
评论(0)
编辑
收藏
所属分类:
技术文章
新用户注册
刷新评论列表
标题
姓名
主页
Email
(博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
博客园首页
新闻频道
社区
小组
博问
网摘
闪存
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
成果网帮您增加网站收入
相关文章:
C#下如何实现服务器+客户端的聊天程序
Ajax实现无刷新三联动下拉框
利用 Remoting 实现异步队列机制
转:Oracle数据导入导出imp/exp命令
实现土豆网的视频播放
Eclipse基础--安装eclipse及语言包
相关链接:
所属分类的其他文章:
GDB 进行调试 使用心得
Unix编程常见问题解答(转)
Bash shell中几个知识点备忘
GNU Make笔记
linux 的库操作命令 ar和nm (转载)
“实际用户ID”、“有效用户ID”和“保存的设置用户ID”
我在Linux中的.vimrc配置 (附taglist+ctags使用)
我在wnidows中的vim配置
typedef与函数指针 (转载)
最新IT新闻:
Google 10周年大事记
Google上下二十年
中华英才网面临外资吞并
软件收入百强张榜 华为中兴海尔列前三
马云vs孙正义:两个“疯子”的对话
公告
My Pic:
Welcome~~~
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
随笔分类
Linux Shell(2)
(rss)
Study English(6)
(rss)
VC代码(1)
(rss)
非技术(52)
(rss)
技术文章(113)
(rss)
项目日志(29)
(rss)
随笔档案
2008年8月 (1)
2008年7月 (2)
2008年6月 (2)
2008年5月 (7)
2008年4月 (12)
2008年2月 (1)
2008年1月 (7)
2007年12月 (7)
2007年6月 (3)
2007年5月 (6)
2007年4月 (6)
2007年3月 (1)
2007年2月 (10)
2007年1月 (5)
2006年12月 (3)
2006年7月 (2)
2006年6月 (5)
2006年5月 (18)
2006年4月 (11)
2006年3月 (8)
2006年2月 (7)
2005年12月 (1)
2005年11月 (3)
2005年9月 (14)
2005年8月 (15)
2005年7月 (3)
2005年6月 (12)
2005年5月 (15)
2005年4月 (4)
2005年3月 (18)
文章分类
.net历程(14)
(rss)
Linux - Unix - 开源(12)
(rss)
Python(2)
(rss)
STB(2)
(rss)
Web 标准(12)
(rss)
工作相关(3)
(rss)
技术,思想(9)
(rss)
人物(3)
(rss)
软件工程(6)
(rss)
数据库技术(2)
(rss)
图像处理
(rss)
学习总结
(rss)
杂七杂八(8)
(rss)
相册
My Pic
收藏夹
电子图书下载(2)
(rss)
BBS
China Unix
IT PUB
BLOG
QSdNet Blog
Sonic
thbird
younther的专栏
老燕Blog
刘韧Blog
吕震宇
思归
享受代码 享受人生
小鱼儿
知秋一叶
Dot Net
.Net论坛
C#技术站
Move To .Net
发赛特技术站
微软.net主页
中国Dot Net论坛
English
ASP FAQS
C# Help
Codeguru
CoderProject
Developer Express
DotNet Junkies Blog
ProgrammersHeaven
Sourceforge
Wikipedia
WindowForms
按照类及命名空间的索引
JAVA
Java视线
J道
MSDN
MSDN归档技术
MSDN技术资源库
MSDN中文Library
MSDN中文网站
VC
VC知识库文档中心
非技术
51Music
世界经理人
唐诗宋词
西安资源信息网
智识学术网
其它技术站点
51Testing
Geniusleft's Space
Linux编程
Nabble
Nabble offers free forum hosting and mailing list archiving
Unix技术社区
红联门户
看雪学院
孟子E章
积分与排名
积分 - 68284
排名 - 609
最新评论
1. re: Installing and using Net-SNMP On Linux
和楼上的一样,有没有example2.c example1.h 两个文件。
如果有的话麻烦你发到邮箱里 borderj # gmail.com
谢谢 (Border)
2. re: SIP包的分析
DTMF信息不在SIP消息里,通常在RTP消息里面。 (fishyu)
3. re: 我在wnidows中的vim配置
我安装vim72 for windows xp .菜单是中文,如何把默认设为英文吗?
(alan hee)
4. re: Connie Dover - I'm Going to the west
也很喜欢这首歌 就如同 down by the sally gardens 更确切的说应该是喜欢爱尔兰的风笛 呵呵 你提到的歌都蛮喜欢的 (长乐)
5. re: 饱蘸生命的程序 -李可文
人们总是认为死亡遥遥无期,才把真正重要的事情一拖再拖。 (John Rambo)
阅读排行榜
1. 以前看书时记得一些笔记(二),很早了,现在再看都有些看不懂了(1951)
2. 以前看书时记得一些笔记(三),很早了,现在再看都有些看不懂了 (1738)
3. VC中类型的相互转化(1670)
4. 线程池 And 线程池的使用(基于.net平台)(1325)
5. 继续看《COM技术内幕》(1214)
评论排行榜
1. 继续看《COM技术内幕》(17)
2. VC中类型的相互转化(3)
3. SIP包的分析(3)
4. 以前看书时记得一些笔记(二),很早了,现在再看都有些看不懂了(3)
5. Installing and using Net-SNMP On Linux(2)