小编jim*_*mis的帖子

哪个Unix没有线程安全的malloc?

我希望我的C程序即使在非常老的Unix操作系统上也可以移植,但问题是我正在使用pthreads和动态分配(malloc).我所知道的所有Unix都有一个线程安全的malloc(Linux,*BSD,Irix,Solaris),但是C标准并不能保证这一点,而且我确定有很老的版本,这是不正确的.

那么,是否有一些平台列表需要使用互斥锁来包装malloc()调用?我打算编写一个./configure测试,检查当前平台是否在该列表中.

另一种选择是测试malloc()的线程安全性,但我知道没有确定性的方法来做到这一点.关于这个的任何想法呢?

c multithreading

8
推荐指数
1
解决办法
876
查看次数

scanf字段宽度字符串溢出

关于缓冲区溢出,以下哪一项是安全的?

char buf[10] = {0};
scanf("%10s", buf);
Run Code Online (Sandbox Code Playgroud)

要么

char buf[10] = {0};
scanf("%9s", buf);
Run Code Online (Sandbox Code Playgroud)

从我读过的内容来看,我要去的是第二个(sizeof减去一个),但问题非常微妙,而且我已经看到了代码建议.有志于引用标准的志愿者吗?

c input scanf

7
推荐指数
1
解决办法
6710
查看次数

如果 python 中的 subprocess.Popen() 打开的连接被关闭

我对 python 很陌生。我想知道,使用时subprocess.Popen需要关闭连接还是子进程自动关闭连接?

process = subprocess.Popen(["mysql", "-uroot", "-ppassword", "database"], 
           stdin = subprocess.PIPE, 
           stdout = subprocess.PIPE, 
           stderr = subprocess.PIPE) 
process_out, process_err = process.communicate(file("test.sql").read())
print process_out
Run Code Online (Sandbox Code Playgroud)

python mysql popen

5
推荐指数
1
解决办法
3658
查看次数

标签 统计

c ×2

input ×1

multithreading ×1

mysql ×1

popen ×1

python ×1

scanf ×1