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

时间:2014-09-13 19:38:16

标签: c++ linux

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

要做最优化,然后我意识到mkdir()比系统快得多(' mkdir路径');

有谁知道原因?

3 个答案:

答案 0 :(得分:3)

system ("mkdir path");调用一个程序mkdir,它会生成一个包含它所暗示的新进程。

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

答案 1 :(得分:2)

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

system('mkdir path')分叉运行mkdir命令的新进程,由man 1 mkdir记录,尽管名称相同,但它是一个单独的命令,为{{1}提供命令行界面系统调用。

答案 2 :(得分:0)

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