当前位置: 首页 > 面试题库 >

system()在Linux中到底如何工作?

岳出野
2023-03-14
问题内容

我一直在阅读其手册页,但尚未成功弄清其工作原理。在调用system()时,是否分叉了一个新的子进程,并在其中添加了shell二进制文件exec()?但这可能是一个愚蠢的猜测。


问题答案:

是的,system()本质上是传递的命令字符串的fork()和exec()“ sh
-c”。可以在此处找到示例实现(来自eglibc,最近来自glibc)。



 类似资料:
  • 问题内容: 在查找(测试)信息时,我遇到了一些问题,完全不知道为什么会发生。现在,我知道没有实际的理由执行此操作,这绝对是可怕的代码,但是为什么行得通呢? 因此,基本上,我将对象添加到Quods的ArrayList中。现在,我看到java如何无法有效地检查它,因为它必须浏览所有引用,而这些引用可能甚至都没有存储在任何地方。但是为什么get()起作用了。get()是否不是要返回Quod的实例,就像在

  • 问题内容: 我正在研究Spring Core认证,我对Spring如何处理bean的生命周期,尤其是bean后处理器有疑问。 所以我有这个架构: 我很清楚这是什么意思: 在“ 装入Bean定义”阶段执行以下步骤: @Configuration类被处理和/或@Components被扫描和/或XML文件进行解析。 Bean定义已添加到BeanFactory(每个索引都在其ID下建立索引) 调用特殊的B

  • 问题内容: 注释如何工作? 如果我有这样的事情: 将如何影响testNumber?它甚至会影响testNumber吗? 谢谢。让我知道我是否使用错了。 问题答案: 不会影响电话号码。它仅用于制作javadocs。 有关Javadoc的更多信息:http : //www.oracle.com/technetwork/java/javase/documentation/index-137868.htm

  • 阅读官方文档:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop.html 我可以读到关于周围的建议: 围绕通知:围绕连接点的通知,如方法调用。这是最有力的忠告。围绕建议可以在方法调用之前和之后执行自定义行为。它还负责选择是继续连接点,还是通过返回自己的返回值或引发异常来快捷执行建议的方法。 但

  • 我在处理Spring boot应用程序项目时注意到,有时在另一台服务器(SQL server)上出现到数据库的连接超时错误。当我尝试使用进行一些脚本迁移时,特别会发生这种情况,但尝试了几次后它仍然工作。 然后我注意到我没有在属性文件中指定。我做了一些研究,发现建议在开发中添加。并在生产中将其更改为:。

  • 我们知道主存域很少:年轻的、终生的(旧的gen)和PermGen。 年轻领域分为伊甸园和幸存者(有两个)。 OldGen用于生存的对象。 MaxTenuringThreshold防止对象过早地被最终复制到OldGen空间。这很清楚,也很容易理解。 但是它是如何工作的呢?垃圾回收器如何处理这些在MaxTenuringThreshold之前仍然存在的对象,以何种方式?它们位于何处? 对象被复制回幸存者