我必须将文件gzip到路径中。我想做的是:
gzip -9c example.txt > /home/paulo/new_name
如果我这样做并且它完全正常,但我使用execlp在c中执行它:
execlp("gzip","gzip","-9c",file,">",path,NULL);
但是当我使用这个execlp时,我会在stdout上获得随机字符。我只是打印文件和路径来检查两者是否正确:
printf("%s, %s\n",file,path);
我得到了这个:
example.txt, /home/paulo/new_name
有人能告诉我我做错了吗?
答案 0 :(得分:3)
一种方法是调用shell:
execl("/bin/sh", "/bin/sh", "-c", "gzip -9c example.txt > /home/paulo/new_name", NULL);
这类似于system
函数的功能。所以另一种选择是:
exit(system("gzip -9c example.txt > /home/paulo/new_name"));