免费注册 查看新帖 |

Chinaunix

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

关于exec的使用。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-22 15:44 |只看该作者 |倒序浏览
linux下我想用exec调用gedit,但简单地使用exec似乎不能实现
我是这么写的
execlp("gedit","abc.txt");
执行的时候没有任何现象,就返回命令提示符,从系统监视器也看不到gedit的进程。
如果这样的话
execlp("gedit",(char *)0);
会提示没有文件名,报错。还有个和GUI有关的错误。

请高手指点迷津!

论坛徽章:
4
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11IT运维版块每日发帖之星
日期:2016-08-11 06:20:00IT运维版块每日发帖之星
日期:2016-08-15 06:20:00
2 [报告]
发表于 2008-07-22 15:50 |只看该作者
execlp的最后一个参数需要设置为(char *)0,如:
execlp("gedit","abc.txt", (char *)0);
或:
execlp("gedit","abc.txt", NULL);

论坛徽章:
0
3 [报告]
发表于 2008-07-22 15:50 |只看该作者
execlp("gedit","abc.txt", (char *)0);

以NULL结尾

论坛徽章:
1
双子座
日期:2015-01-04 14:25:06
4 [报告]
发表于 2008-07-22 16:05 |只看该作者
execlp("gedit","gedit","abc.txt",(char *)0);

论坛徽章:
0
5 [报告]
发表于 2008-07-22 16:21 |只看该作者

谢谢楼上三位!

解决了,谢谢三位,我太粗心了。。。

论坛徽章:
0
6 [报告]
发表于 2008-07-22 16:45 |只看该作者
4楼的是正确的.
man execlp

       The  const char *arg and subsequent ellipses in the execl(), execlp(), and execle() functions can be thought of
       as arg0, arg1, ..., argn.  Together they describe a list of one or more  pointers  to  null-terminated  strings
       that  represent the argument list available to the executed program.  The first argument, by convention, should
       point to the filename associated with the file being executed.  The list of arguments must be terminated  by  a
       NULL pointer,
and, since these are variadic functions, this pointer must be cast (char *) NULL.

论坛徽章:
0
7 [报告]
发表于 2008-07-23 15:07 |只看该作者

回复 #6 xi2008wang 的帖子

谢谢了!之前我都没发现几个解答的细微差别
我是不是可以这样理解
execlp("gedit",(char *)0);
在gedit对argc检查时没有通过,而
execlp("gedit","abc.txt", (char *)0);
argc为1,通过了检查,但gedit从argv[1]中取文件名,所以新建的仍然是未命名文档?

论坛徽章:
0
8 [报告]
发表于 2008-07-23 15:16 |只看该作者
函数原型是这样:
int execlp(const char *filename, const char *arg0,
... /* (char *)0 */ );

filename是文件名
arg0 可以随便写,但建议写成filename
arg1 就是第一个参数了

论坛徽章:
0
9 [报告]
发表于 2008-07-23 15:19 |只看该作者
arg0 是进程名 ps命令会使用

论坛徽章:
0
10 [报告]
发表于 2008-07-23 15:21 |只看该作者

回复 #9 xi2008wang 的帖子

哦,明白了,谢谢指点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP