为什么使用 mkdir () 函数比使用 system ('mkdir 路径')快得多?

Why use the mkdir () function is much faster than using system ('mkdir path')?

本文关键字:mkdir 快得多 路径 函数 为什么 system      更新时间:2023-10-16

我正在创建一个应用程序,我需要创建多个文件夹,而创建文件夹是一个过程。

必须进行最大程度的优化,然后我意识到mkdir()比系统("kdir路径")快得多;

有人知道原因吗?

system ("mkdir path");调用一个程序mkdir,即生成一个具有所有含义的新进程。

mkdir()只是调用一个系统例程。

mkdir()调用man 2 mkdir记录的系统调用。该函数在同一进程中运行。

system('mkdir path')派生了一个新进程,该进程运行mkdir命令,man 1 mkdir对此进行了记录,尽管名称相同,但它是一个单独的命令,为mkdir系统调用提供了命令行接口。

从shell调用mkdir会加载的开销(shell本身,生成一个新进程,等等),直到它最终直接调用相同的内核代码mkdir()调用。