반응형
오류 값을 설정하는 방법은 무엇입니까?
저는 두 가지 다른 방법에 대해 두 가지 통화가 있습니다.
void func1()
{
// do something
if (fail)
{
// then set errno to EEXIST
}
}
그리고 두 번째 방법은:
void func2()
{
// do something
if (fail)
{
// then set errno to ENOENT
}
}
가 때할정설을 때.
errno
, ? 확인? 떤가치로무합, 을엇니까은그것? 단지 오류 확인?을 어떻게 합니까?
errno
의func1
그리고.func2
EEXIST
그리고.ENOENT
감사해요.
모든 실질적인 목적을 위해, 당신은 치료할 수 있습니다.errno
글로벌 변수처럼(보통 그렇지는 않지만).그래서 포함합니다.errno.h
그리고 그냥 사용하세요:
errno = ENOENT;
당신은 스스로에게 물어보아야 합니다.errno
는 사용자의 목적에 가장 적합한 오류 감지 메커니즘입니다.오류 코드 자체를 반환하도록 기능을 설계할 수 있습니까?
IMO, 표준errno
시스템 수준에 맞게 설계되었습니다.저의 경험은 그것들을 오염시키지 않는 것입니다.이 C 표준을 C 표준을 사용합니다.errno
메커니즘에서 다음과 같은 정의를 수행할 수 있습니다.
/* your_errno.c */
__thread int g_your_error_code;
/* your_errno.h */
extern __thread int g_your_error_code
#define set_your_errno(err) (g_your_error_code = (err))
#define your_errno (g_your_error_code)
그리고 여전히 구현할 수 있습니다.your_perror(err_code)
자세한 내용은 glibc의 구현을 참조하시기 바랍니다.
#include <errno.h>
void func1()
{
// do something
if (fail)
{
errno = ENOENT;
}
}
언급URL : https://stackoverflow.com/questions/11699596/how-to-set-errno-value
반응형
'programing' 카테고리의 다른 글
Firebase(FCM) 토큰을 가져오는 방법 (0) | 2023.06.20 |
---|---|
Angular Material | 대화상자가 열려 있는지 확인합니다. (0) | 2023.06.20 |
read.csv에서 colClass 지정 (0) | 2023.06.15 |
매핑된 드라이브의 실제 경로를 확인하려면 어떻게 해야 합니까? (0) | 2023.06.15 |
Select 문에서 변수 선언 및 설정 (0) | 2023.06.15 |