使用execl运行Unix Shell执行命令注意点
有时使用execl执行某些含有通配符的命令的时候需要记住UnixShell(sh,bash等),但是可能会遇到以下问题。
使用以下形式可正确运行得到结果
execl("/bin/bash","bash","-pc",cmdString,NULL);
1.不要自己在cmdString中加引号
bash运行的时候自己加上引号,所以不要自己加上引号,否则运行的命令会被认成带引号的,一般会出现"Nosuchfileordirectory"的错误。
2.加上'-p'选项,保证euid和egid不被设置成uid和gid(shell在两者不一致时的默认行为)
相关推荐
服务器端攻城师 2020-02-24
Jieen 2020-01-08
treasurelifelhf 2013-07-24
Hwaphon 2019-11-25
晴天哥 2011-09-02
wiseMale 2015-07-13
mwx 2011-06-29
sxl0 2007-09-10
spylyt 2019-11-04
amorfait 2009-05-14
ameng 2019-10-26
galoisgodel 2012-05-18
evanbai 2017-06-07
ChasingChasing 2014-12-18
hanjinping 2013-02-25
周海汉的开发 2012-08-28
ftafta 2012-08-26
sdfshfh 2012-07-11
刘涛 2012-05-30
niuyisheng 2011-11-12
alwayshelloworld 2011-10-27