2013-11-21 1 views
0

Я хотел знать, как я могу проверить, является ли значение -1 возвратом getpriority() ошибкой или законным значением. Я прочитал инструкцию:C - UNIX - проверьте, возвращает ли getpriority() ошибку

ВОЗВРАТ СТОИМОСТИ

Since getpriority() can legitimately return the value -1, it is neces- 
    sary to clear the external variable errno prior to the call, then check 
    it afterwards to determine if -1 is an error or a legitimate value. 

Я не знаю, как использовать переменную ERRNO, потому что я всегда пользователь perror() для отображения ошибок ...

ответ

3

Делайте то, что он говорит! Очистите значение errno, затем вызовите, затем выполните проверку.

#include <errno.h> 
#include <sys/time.h> 
#include <sys/resource.h> 

errno = 0; 
int val = getpriority(); 
if (val == -1 && errno) { 
    // we have an error! 
} 
+3

Не так ли (val <0 && errno)? –

+2

И это также должно быть 'if (val == -1 ...'. – alk

+0

D'oh! Два опечатка в одной строке ... Мозг всерьез не здесь, извините. –

Смежные вопросы