海合會(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來結束應用程序或做其他事情。
另一個想法是,最好是返回錯誤指示符,並讓調用函數顯示錯誤的來源?