printf在Linux上使用线程安全写入stdout ?使用低级write命令怎么样?
我有以下功能:
void *foo(void *i) {
int a = (int) i;
}
int main() {
pthread_t thread;
int i;
pthread_create(&thread, 0, foo, (void *) i);
}
Run Code Online (Sandbox Code Playgroud)
在编译时,有一些关于强制转换((void *) i和int a = (int) i)的错误.如何pthread_create正确传递整数作为最后一个参数?
假设我有两个线程将某些内容(相对较长)打印到 或stderr,stdout这两个流的函数是否都是线程安全的,因为它们永远不会“交错”字符?因此,例如,如果我有“Hello, World”,我将永远不会得到“HHellllo,, WorldWorld”或其他任何交错?适用于 x86、GCC、Linux > 3.0。