char buffer[ 256 + 1 ];
char command[ 256 + 1 ];
FILE *p;
int fd = open(".", O_RDONLY);
chdir("/home/user/");
memset( command , 0, sizeof( command ));
sprintf( command, "unzip %s", "file.zip" );
p = popen(command, "r");
if(!p)
{
fprintf(stderr, "Error opening pipe.\n");
return;
}
memset( buffer, 0, sizeof( buffer ));
char *ptr = buffer;
while(!feof(p))
{
fread( ptr, 1, 1, p );
ptr++;
}
printf ("buffer(%s)\n", buffer );
if (pclose(p) == -1)
{
fprintf(stderr," Error in closing pipe!\n");
return;
}
fchdir(fd);
我正在编写一个程序来使用路径中不存在的popen解压缩文件(file.zip
)。当我运行程序时,我的外壳会显示此错误消息。
unzip: cannot find or open refresh.zip
这是正确的。我想在我的代码中捕获此错误消息。我该怎么办?