【发布时间】:2015-06-29 20:13:07
【问题描述】:
在你说它是重复的之前,我已经阅读了这个:How to pass variable number of arguments from one function to another?
我有这样的功能:
void tlog_function(t_log* logger, const char* message_template, ...) {
pthread_mutex_lock(&loggerLock);
log_function(logger, message_template, ...); // What I want to do..
pthread_mutex_unlock(&loggerLock);
}
还有一个这样的函数,不是我的,我是从第三方库中使用的:
void log_function(t_log* logger, const char* message_template, ...);
如您所见,我想要做的只是向该函数添加一个互斥锁以使其成为线程安全的,我知道我可以使用va_list 但在这种情况下我无法更改第二个函数的代码,因为它在一个库中,而我只有 .h 文件。
那么,有什么办法可以做到吗?
【问题讨论】:
-
有没有等价的功能
log_function(t_log* logger, const char* message_template, va_list args);? -
@iharob 不,没有:(
-
我认为那是不可能的。
-
@iharob 如果你必须让这样的函数成为线程安全的,你会怎么做?
-
log_function()是做什么的?
标签: c function arguments ansi-c