【发布时间】:2016-11-23 01:30:15
【问题描述】:
当我尝试使用以下两行执行 c 代码时,ulimit 仍然显示为无限制,但我希望答案为 1024。
system("ulimit -d 1024");
system("ulimit -d");
【问题讨论】:
-
那是因为
system(..)创建了一个新的子shell 而ulimit只影响那个子shell。当从system(...)返回时破坏外壳时,它会丢失。无论您要做什么,您都应该:1) 封装在 shell 脚本中 2) 寻找能够为您提供此功能的 API用于当前进程。 -
您可以通过修改
etc/security/limits.conf... 在每个系统的基础上设置这些限制...不过,尚不清楚这是否会对您的问题有所帮助。