C의 Linux chdir 시스템 호출

Cui Linux Chdir Siseutem Hochul



장치의 현재 작업 디렉토리에 대한 변경은 'CHDIR' 방법을 사용하여 수행됩니다. 다양한 상황에서 장치의 현재 작업 폴더를 변경하기로 결정할 수 있습니다. 또는 현재 작업 디렉토리 대신 폴더에서 C 스크립트를 실행하려고 합니다. 따라서 특정 C 코드를 실행하려면 현재 작업 폴더를 수정해야 합니다. 또한 코딩 언어 C의 'getcwd' 메서드를 사용하여 현재 작업 폴더가 변경된 시점을 빠르게 확인할 수 있습니다. 이제 이 기사에서 C의 chdir() 함수를 사용하여 작업 디렉토리를 변경합니다.

예 01:

Linux 운영 체제에서 C의 chdir() 함수 작업부터 시작하겠습니다. 이를 위해서는 C 컴파일러가 이미 사용자의 끝에 마운트되어 있는지 확인해야 합니다. 대부분의 경우 Kali Linux 운영 체제에서 C의 'gcc' 컴파일러를 사용하는 경향이 있습니다. 이 예제를 시작하려면 확장자가 'c'인 C 파일이 있어야 합니다. 이름을 p1.c로 지정하고 아래와 같이 Linux의 'nano' 편집기로 열려고 했습니다.







파일이 편집기에서 열리면 해당 파일에서 코딩을 시작해야 합니다. 우리는 C 프로그램에서 반드시 있어야 하는 C의 주요 헤더 라이브러리를 추가하여 C 프로그램을 시작했습니다. 따라서 stdio.h 및 unistd.h 헤더 라이브러리는 표준 입력 및 출력이 프로그램 내에서 흐를 수 있는지 확인하는 데 사용됩니다. unistd.h 헤더는 특히 이 예제에 필요한 C의 일부 표준 기능을 사용하는 데 사용되었습니다. 이제 이 코드에서 C의 main() 드라이버 함수가 실행 시 자동으로 실행되도록 시작했습니다. 문자형 배열 변수 'path'는 100개의 값만 저장하기 때문에 100의 크기로 정의했습니다.



printf() 함수 문은 'getcwd()' 함수를 사용하여 이 C 파일의 현재 작업 디렉토리 폴더를 단순히 인쇄하는 데 사용되었습니다. 이 함수는 크기가 100인 '경로' 배열 변수를 사용하여 현재 작업 디렉토리를 가져오고 이를 표시하기 위해 printf() 함수 문에 전달합니다. 이제 chdir() 함수를 사용할 차례입니다. 디렉토리에서 앞으로 이동할 것인지 아니면 동일한 디렉토리 내에서 뒤로 이동할 것인지 지정하기 위해 모든 종류의 문자를 전달할 수 있습니다.



그래서 우리는 chdir() 함수 문에서 '..' 문자를 사용하여 현재 작업 디렉토리에서 역방향, 즉 현재 작업 디렉토리보다 한 수준 아래로 이동하려고 했습니다. 지금 우리는 Kali Linux 시스템의 기본 'Linux' 작업 디렉토리의 프로젝트 폴더에서 작업하고 있습니다. 이제 'chdir' 함수를 사용한 후 'project' 디렉토리가 아닌 'Linux' 디렉토리에 있습니다. 이제 'getcwd' 함수를 사용하여 현재 작업 디렉토리를 표시하기 위해 'printf()' 함수 문을 다시 한 번 시도했습니다. 프로그램은 return 0 문으로 끝납니다.





이 C 프로그램을 저장한 후, 우리 끝에서 이미 구성한 'gcc' 컴파일러를 사용하여 컴파일해야 합니다. 이 gcc 명령을 사용하여 아래와 같이 -o 옵션을 사용하여 'p1.out'이라는 이 C 파일의 개체 파일을 만들었습니다.



이제 Linux 터미널에서 개체 파일을 실행할 때 chdir() 함수를 사용하기 전에 먼저 프로그램에서 사용하는 작업 디렉터리를 얻게 됩니다. chdir() 함수를 사용한 후 아래의 한 디렉토리로 이동했고 그 특정 디렉토리 'home'이 표시됩니다.

예 02:



매우 동일한 헤더 라이브러리를 사용하여 이 프로그램 코드를 시작했습니다. 이 프로그램의 main() 함수 내에서 chdir() 함수를 사용하여 'if' 문을 사용했습니다.

이 기능은 '/user!=0' 조건을 설정하여 '/user'가 시스템에 존재하는지 여부를 확인합니다. 디렉토리가 현재 시스템에 존재하지 않는 경우, perror 함수 호출은 '사용자 디렉토리가 존재하지 않습니다.'라는 해당 오류 메시지를 표시하는 데 사용됩니다. 우리는 그 안에 chdir() 함수를 사용하여 또 다른 'if' 문을 활용하고 있습니다. 여기서 chdir() 함수를 사용하는 목적도 위의 if 문에서 했던 것과 같으며, '/temp'!=0 조건을 사용하여 디렉토리의 존재 여부를 확인합니다. 유일한 차이점은 아래 코드 이미지에서 볼 수 있듯이 '/user' 대신 새 디렉토리 이름 '/temp'를 사용한다는 것입니다.







/temp 디렉토리가 시스템에 존재하지 않는 경우 'if' 문에 사용된 perror 함수는 아래 이미지와 같이 '/temp 디렉토리가 존재하지 않습니다'라는 오류 메시지를 던집니다. 'if' 문을 모두 사용한 후 C의 return 0 문으로 이 코드를 종료했습니다. 이제 프로그램이 끝났습니다. 실행 전에 Ctrl+S 단축키를 사용하여 C 코드를 저장했습니다.





이제 파일이 시스템에 저장되었으므로 끝에서 이미 마운트한 'gcc' 컴파일러로 C 코드를 컴파일해야 합니다. 이 명령어를 사용하여 명령어의 -o 옵션을 사용하여 객체 파일 'p2.out'을 생성했습니다.





'./' 문자로 생성된 'p2.out' 오브젝트 파일을 실행한 후, 'chdir'의 경로에 언급된 두 디렉토리가 모두 시스템에 존재하지 않거나 쉘에 표시되는 오류가 이를 입증하고 있음을 알게 되었습니다. 제대로.



결론

오늘 이 기사에서는 Kali Linux 운영 체제에서 C의 chdir() 함수를 사용하는 방법을 시연했습니다. 첫 번째 예는 chdir() 함수를 사용하여 작업 디렉토리를 변경하는 방법, 즉 한 디렉토리에서 다른 디렉토리로 이동하는 방법을 보여줍니다. C의 마지막 예는 chdir()의 경로에 지정된 현재 작업 디렉토리가 존재하는지 여부를 확인하는 방법을 보여줍니다.