为什么用chdir而不用system

发布时间 2023-10-07 12:41:46作者: ⭐⭐-fighting⭐⭐

system("cd ..")chdir(dir) 实际上执行了不同的操作,虽然目标可能是相似的,但它们的作用和实现方式不同。

  1. system("cd .."):

    • system 函数是一个C标准库函数,用于执行系统命令。
    • system("cd ..") 中,它会启动一个新的shell进程,并在该shell进程中执行 cd .. 命令,该命令用于切换到上一级目录。
    • 但是,system 函数在新的shell进程中执行命令,对当前程序没有影响。即使 system("cd ..") 可以切换到上一级目录,但这种切换对于当前程序是不可见的。
  2. chdir(dir):

    • chdir 是一个C标准库函数,用于改变程序的当前工作目录。
    • chdir(dir) 直接改变了当前程序的工作目录,而不会启动新的进程。这样可以确保程序在同一个进程中继续执行,并在新目录中进行操作。

如果你想改变程序的当前工作目录,而不影响程序的执行流程和状态,你应该使用 chdir(dir)。如果你只想在当前目录中执行一个命令,可以考虑使用 system 函数。根据你的具体需求和情境选择合适的方式。通常情况下,如果你只需要切换目录,建议使用 chdir 函数,因为它更直接、更高效,不需要启动新进程。