g*********s 发帖数: 1782 | 1 FILE *fp = popen(gzip_file(fileName), "w");
...
gzip_file是这样定义的:
const char* gzip_file(const char* file_name)
{
static sda::string cmd;
cmd = _gzip_path + sda::string(" > ") + sda::string(file_name);
return cmd.c_str();
}
现在传进的参数文件名比较怪异,带空格的,比如"abc def.gz"。这样gzip command变
成了:gzip >abc def.gz。然后gzip报错:gzip: def.gz: No such file or
directory。但是abc文件还是生成了,而且文件指针也返回了。问题在于abc这个文件
根本无法写入,所以后面又出现了fwrite error。
有什么办法第一时间抓住这个gzip错误呢?不许用parser提前分析文件名。 | b******n 发帖数: 592 | 2 为什么不用zlib,很方便的阿..如果用popen, 要用 "gunzip -c xxxx | "吧。
【在 g*********s 的大作中提到】 : FILE *fp = popen(gzip_file(fileName), "w"); : ... : gzip_file是这样定义的: : const char* gzip_file(const char* file_name) : { : static sda::string cmd; : cmd = _gzip_path + sda::string(" > ") + sda::string(file_name); : return cmd.c_str(); : } : 现在传进的参数文件名比较怪异,带空格的,比如"abc def.gz"。这样gzip command变
|
|