请教unix下execvp和system函数的问题
火猴 2008-07-02 10:57:01 今天在AIX下写程序,发现如下问题:
我在配置文件里面存储一个命令,例如cp /home/*.txt ./
我还程序里面读出这个命令,然后用execvp或system去调用。
发现用execvp调用的时候,不支持通配符,也就是说cp /home/a.txt ./ 就可以执行成功,如果是 cp /home/*.txt ./ 就不行,提示/home/*.txt不存在。
而用system 不会出现这个问题。 两种都支持, 但是system调用有个问题, 因为他是先fork一个子进程,起一个shell, 然后再去调用命令。 所以如果命令失败他得到的返回值还是0, 因为shell没有出错。
请教大侠,如何用execvp调用的时候也能支持通配符, 或者用system可以得到程序返回值?