强制gzip覆盖C中的.gz文件



我在使用gzip压缩C程序中的文件时遇到了一些问题。我使用这行代码execl("/usr/bin/gzip", "-f", filePath, NULL);来压缩filePath给出的文件。第一次(即,当没有现有的.gz文件时(它工作得很好,但在程序的后续执行中,系统会提示我是否要覆盖现有的.gg文件。

我是否错误地使用了execl(),因为我很确定-f开关会在没有提示的情况下强制gzip覆盖?

您还需要提供argv[0]。所以,像这样:

execl("/usr/bin/gzip",
"gzip", "-f", filePath,
NULL); 

在代码中,您将argv[0]设置为"-f",因此它基本上被忽略。

Gzip是少数几个参数0真正重要的程序之一,因为gzipgunzip通常(至少在Unixy系统上(是指向同一二进制文件的符号链接,参数0用于确定默认模式。如果你的"-f"工作,这意味着gzip是默认的。

相关内容

  • 没有找到相关文章

最新更新