免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8774 | 回复: 10
打印 上一主题 下一主题

exec()系统调用的用法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-08-16 10:08 |只看该作者 |倒序浏览
    想在c程序中执行一个shell语句,而且这个shell语句有参数输入,比如shell语句的名字是test.bat 输入参数有三个,分别是1,2,3 。请问用什么方法让这个c程序里执行shell语句,用哪个格式比较好?exec()系统调用有六中格式。我的程序是这样的。
if (( pid = fork ()) == 0)
        {
                execl(".","grep ", " test.bat 1 2 3&quot&#59;
                perror ( "execl &quot&#59;
                exit ( 3) &#59;
        }

        while (( pid = wait ( &status ))!=-1)&#59;
但是在execl(".","grep ", " test.bat 1 2 3&quot&#59;这行好象不对,说execl : Permission denied,不知道怎么回事。

论坛徽章:
0
2 [报告]
发表于 2002-08-16 14:22 |只看该作者

exec()系统调用的用法

第一个参数不应该是“.”,应该是grep这条命令的路径

论坛徽章:
0
3 [报告]
发表于 2002-08-21 09:49 |只看该作者

exec()系统调用的用法

不但是路径名字,还要文件名,而且参数是一个一个出入的,一个参数里有空格也没有关系的,例如:
execl("/tmp/test.bat","test.bat ", 1,2,3, (char *)0)&#59;

论坛徽章:
0
4 [报告]
发表于 2002-08-25 16:00 |只看该作者

exec()系统调用的用法

对阿,自己知道了阿,呵呵

论坛徽章:
0
5 [报告]
发表于 2002-08-27 00:08 |只看该作者

exec()系统调用的用法

No,
1,2,3也要有引号的!
另外,我更喜欢用execlp

论坛徽章:
0
6 [报告]
发表于 2002-08-28 09:41 |只看该作者

exec()系统调用的用法

execlp在哪个操作系统下有?sco跟aix好像都没有吧

论坛徽章:
0
7 [报告]
发表于 2002-08-28 09:53 |只看该作者

exec()系统调用的用法

sco/aix好像都有:)

论坛徽章:
0
8 [报告]
发表于 2002-09-04 11:08 |只看该作者

exec()系统调用的用法

惭愧,惭愧

论坛徽章:
0
9 [报告]
发表于 2002-11-01 10:03 |只看该作者

exec()系统调用的用法

我也喜欢用execlp(),它的第一个参数可以不用输入路径名,只文件名即可,在执行时,它会自动按路径查找。SCO中有这个命令;

论坛徽章:
0
10 [报告]
发表于 2009-02-12 01:29 |只看该作者
exec()这族函数很有用啊,受教

评分

参与人数 1可用积分 -10 收起 理由
net_robber -10 恶意灌水

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP