在C程序中实现gzip强制覆盖已有.gz文件的问题
问题解决
你的问题出在execl()的参数传递逻辑上:execl()的第二个参数必须是程序的名称(对应进程的argv[0]),不能直接从选项开始传。你当前的写法把-f当成了argv[0],导致gzip完全没识别到这个强制覆盖的选项,自然会提示你是否覆盖。
修正后的代码应该是这样:
execl("/usr/bin/gzip", "gzip", "-f", filePath, NULL);
这里第二个参数"gzip"是程序名(可以和实际路径不同,但通常保持一致),之后才依次传递-f选项和目标文件路径,这样gzip就能正确解析参数,实现无提示覆盖已有.gz文件的效果。
内容的提问来源于stack exchange,提问作者TommoM
相关产品推荐
相关产品推荐

