1
4
如果使用
您可以尝试几种技巧,但您确实应该将呼叫转换为
|
2
1
在*nix系统上,文件描述符上的stdio层和文件描述符对进程是全局的。因此,没有办法不改变就做你想做的事 某物 . 最好的办法是使用fprintf()重写代码。因为这涉及到在arglist中添加一个参数,所以我甚至不确定您是否能够使用预处理器技巧来实现您的目标而不修改实际的代码。 也许你可以澄清你不能创建新流程的原因?从这个角度来说,这个问题可能是可以解决的。 |
3
1
如果您有线程本地存储,可以执行以下操作:
同样,对于您打算使用的所有其他stdio函数。当然,最好不要尝试重新定义相同的名称,而是在源文件上执行搜索和替换以使用备用名称。
btw即使没有编译器的线程本地存储扩展,也可以使用返回右键的函数调用
|
4
0
如果您坚持使用“printf()”之类的标准I/O函数,那么我能想到的唯一方法就是让标准I/O库使用线程本地数据结构支持特定于线程的I/O(类似于“errno”是调用返回线程本地错误号的函数的宏)。我不知道有什么标准I/O实现可以做到这一点。 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |
user1700890 · 了解交互式代理Python API中的线程 2 年前 |
AntonBoarf · 为什么要将实例变量指定给局部变量? 2 年前 |
rhymes · 如何让线程操作相同的java列表 2 年前 |