RC 在多线程/多处理的上下文中代表啥?
Posted
技术标签:
【中文标题】RC 在多线程/多处理的上下文中代表啥?【英文标题】:What does RC stand for in the context of multithreading/multiprocessing?RC 在多线程/多处理的上下文中代表什么? 【发布时间】:2018-12-03 06:23:14 【问题描述】:我看到人们在使用多线程时经常使用变量名RC
或rc
,例如在this Linux pthread_setname_np
manual 中,有:
rc = pthread_create(&thread, NULL, threadfunc, NULL);
在这种情况下,RC 代表什么?
我怀疑它的意思是“返回码”,但我没有找到权威来源来验证。
【问题讨论】:
我相信你是对的。pthread_create
返回错误码,所以可能是返回码。
【参考方案1】:
是的,很好的猜测,RC 或 rc 是常用的具有返回值的变量名 来自编程中的 API。
但这只是API返回类型的局部变量,其他常用的还有ret_code,不过是取名API返回值的问题。我不认为存在一些文件来解释为什么这个 RC 命名存在:-)
【讨论】:
【参考方案2】:您不会有权威来源解释这一点。人们可以随意命名automatic variables(前提是与scope 中的其他内容或关键字不冲突)。
但您的猜测(rc
表示“返回码”)可能是一个不错的猜测。
但是,等效代码 int i = pthread_create(&thread, nullptr, threadfunc, nullptr);
可能被视为与您的示例一样可读。我个人倾向于在我的 C 代码中将此类局部变量命名为 int err = pthread_create(&thread, NULL, threadfunc, NULL);
。
PS。使用NULL
和pthread_create
建议使用POSIX threads 的C 程序(参见pthreads(7)),而不是C++ 程序。在真正的现代 C++11 中,您最好使用 nullptr
和 std::thread
代替(即使大多数实现确实会在 pthreads(7) 以上实现它)
【讨论】:
C++ 非常重视向后兼容性,因此使用NULL
并调用C API 的C++ 代码与使用nullptr
和std::thread
调用C++ 代码一样“纯正”。也许“现代 C++”更适合它。以上是关于RC 在多线程/多处理的上下文中代表啥?的主要内容,如果未能解决你的问题,请参考以下文章