C++ 为什么使用mkdir()函数比使用system(';mkdir path';)快得多?
我正在创建一个应用程序,我需要创建多个文件夹,并且创建文件夹是在一个go内 必须进行最优化,然后我意识到mkdir()比系统('mkdir path')快得多 有人知道原因吗?C++ 为什么使用mkdir()函数比使用system(';mkdir path';)快得多?,c++,linux,C++,Linux,我正在创建一个应用程序,我需要创建多个文件夹,并且创建文件夹是在一个go内 必须进行最优化,然后我意识到mkdir()比系统('mkdir path')快得多 有人知道原因吗?系统(“mkdir路径”)调用一个程序mkdir,该程序将生成一个包含所有含义的新进程 mkdir()只调用一个系统例程。系统(“mkdir路径”)调用一个程序mkdir,该程序将生成一个包含所有含义的新进程 mkdir()。该函数在同一进程中运行 system('mkdir path')派生了一个新进程,该进程运行mkd
系统(“mkdir路径”)
调用一个程序mkdir
,该程序将生成一个包含所有含义的新进程
mkdir()
只调用一个系统例程。系统(“mkdir路径”)
调用一个程序mkdir
,该程序将生成一个包含所有含义的新进程
mkdir()。该函数在同一进程中运行
system('mkdir path')
派生了一个新进程,该进程运行mkdir
命令,该命令由man 1 mkdir
记录,尽管名称相同,但它是一个单独的命令,为mkdir
系统调用提供命令行界面。mkdir()
调用由man 2 mkdir
记录的系统调用。该函数在同一进程中运行
system('mkdir path')
派生了一个新的进程,该进程运行mkdir
命令,该命令由man 1 mkdir
记录,尽管名称相同,但它是一个单独的命令,为mkdir
系统调用提供命令行接口。从shell调用mkdir
有大量开销(shell本身,生成一个新进程,等等),直到它最终调用相同的内核代码mkdir()
直接调用。从shell调用mkdir
有大量开销(shell本身,生成一个新进程,等等),直到它最终调用相同的内核代码mkdir()
直接调用。Linux是运行mkdir命令
还是运行sh-c mkdir
?运行什么并不取决于“Linux”。Perl的system()调用完全控制执行什么以及如何执行。您的问题的答案可以在perlfunc手册页的系统描述()中找到函数。system
函数将其参数传递给系统shell以执行。Linux是运行mkdir命令
还是运行sh-c mkdir
?运行什么不是由“Linux”决定的。Perl的system()调用完全控制执行什么以及如何执行。您的问题的答案可以在perlfunc手册页的system()函数说明中找到。system
函数将其参数传递给系统shell以执行。