리눅스 System Call 중 chdir
붕붕
리눅스 시스템 Call 중에 chdir 이라는 함수가 있는데요.
이 함수를 이용해서 mychdir 이라는 프로그램을 만들었습니다.
그런데 이상하게 실행하면 폴더 위치가 변경이 안되네요.
바뀌지 않는 이유와, 어떻게 하면 바뀌게 할 수 있는지 알려주세요.
Code------------------------------------
#include stdio.h
#include unistd.h
#include sys/types.h
#include dirent.h
#include sys/stat.h
int main(int argc, char** argv) {
if(argc == 1) {
printf(Useage : mycd src\n);
return 0;
}
chdir(argv[1]);
return 0;
}
-
사랑은아픔
프로그램이 종료하고 디렉토리를 변경하시려면..
셀스크립을 하나 만들어서 프로그램 실행과 디렉토리 변경을 하나로 묶고
프로그램명이 아니라 스크립트로 실행하시는 방법도 있습니다. -
진달래
chdir() 하시면 현재 실행 중인 프로그램에서만 디렉토리가 변합니다..
현재 프로그램이 종료하고 shell로 돌아가면
변경했던 디렉토리가 아니라 프로그램이 시작되었던 그 디렉토리로 보여지는 겁니다..
shell도 하나의 프로그램과 같습니다..
$ csh 또는 bash 하셔서 셀을 하나 더 호출하고 디렉토리를 변경하고 exit하고 다시 돌아가면...
바뀐 디렉토리가 보여지지는 않습니다.. -_ㅡ;;