Я написал некоторый код для получения обновленных файлов GPG по пути /home/user/GPG_FILES
.Он отлично работает, когда файлы существуют в пути, но моя проблема заключается в том, что путь не содержит файлов GPG, в то время как он печатает («ls: невозможно получить доступ к * .gpg: нет такого файла или каталога») в моей оболочке, котораяЯ не хочу, чтобы это печаталось в моей оболочке.Я хочу обработать эту ошибку в своем коде, имея собственное описание ошибки.
int main()
{
while( 1 )
{
char buffer[ 1024 + 1 ];
char stip_file_path[ 2048 + 1 ];
char gpg_file_name[ 2048 + 1 ];
FILE *p;
memset( stip_file_path, 0, sizeof( stip_file_path ));
sprintf( stip_file_path, "%s/%s/%s", "home", "user", "GPG_FILE" );
chdir( stip_file_path );
p = popen("ls -ltr *.gpg| grep ^- | tail -1 | awk '{ print $(NF) }'", "r");
if(!p)
{
printf("Error opening pipe");
return -1;
}
memset( buffer, 0, sizeof( buffer ));
char *ptr = buffer;
while(!feof(p))
{
fread( ptr, 1, 1, p );
ptr++;
}
if( pclose(p) == -1 )
{
printf("Error opening close");
return -1;
}
printf("get_updated_file success(%s)", gpg_file_name );
}
}