海合会(GCC)4.7.2 C89允许的错误消息冒泡
我一直想从调用的函数返回的错误信息时,什么是最好的做法是什么?
在我创造我的共享库之一,我有这样的功能:
/* Create directory structure */
apr_status_t dir_create(apr_pool_t *mem_pool)
{
#define SRC "test_src"
apr_fileperms_t file_perms =
APR_FPROT_UWRITE |
APR_FPROT_GWRITE |
APR_FPROT_WWRITE |
APR_FPROT_UREAD |
APR_FPROT_GREAD |
APR_FPROT_WREAD |
APR_FPROT_UEXECUTE |
APR_FPROT_GEXECUTE;
if(apr_dir_make(SRC, file_perms, mem_pool) != APR_SUCCESS) {
LOG_CRIT("Failed to create directory");
return FALSE;
}
return TRUE;
}
的LOG_CRIT
将显示与错误号相应的错误消息。
在我的应用程序,它会调用这个函数我有这样的:
if(dir_create(mem_pool) != TRUE) {
return 1;
}
LOG_INFO("Directory has been created");
对于例如,当上面的失败,会记录是这样的:
[CRITICAL] dir_create:28: error [File exists] Failed to create directory
我想知道我应该把调用库函数的应用程序中的错误消息。或者,您应该在最早的时候尽快显示错误信息?
在上面的情况下,我在被调用函数中显示错误消息。当函数返回时,我只返回1来结束应用程序或做其他事情。
另一个想法是,最好是返回错误指示符,并让调用函数显示错误的来源?