Как запустить программу с рабочим каталогом, отличным от текущего, из оболочки Linux? - PullRequest
306 голосов
/ 24 апреля 2009

Как использовать оболочку Linux, как запустить программу с другим рабочим каталогом из текущего рабочего каталога?

Например, у меня есть двоичный файл helloworld, который создает файл hello-world.txt в текущем каталоге. Этот файл находится внутри каталога /a. В данный момент я нахожусь в каталоге /b. Я хочу запустить мою программу под управлением ../a/helloworld и получить hello-world.txt где-то в третьем каталоге /c.

Ответы [ 11 ]

0 голосов
/ 24 апреля 2009

Если вы хотите выполнить это внутри вашей программы, я бы сделал что-то вроде:

#include <unistd.h>
int main()
{
  if(chdir("/c") < 0 )  
  {
     printf("Failed\n");
     return -1 ;
  }

  // rest of your program...

}
...