작업 디렉토리

Working directory

컴퓨팅에서 프로세스작업 디렉토리는 [nb 1]각 프로세스에 동적으로 연관된 계층 파일 시스템디렉토리입니다.CWD(Current Working Directory), 예를 들어 BSD 함수 또는 단지 현재 디렉토리라고 [2]부르기도 합니다.프로세스가 단순 파일 이름 또는 상대 경로를 사용하는 파일을 참조하는 경우(루트 디렉토리의 전체 경로에 의해 지정된 파일이 아니라), 참조는 프로세스의 작업 디렉토리와 관련지어 해석됩니다.예를 들어 작업 디렉토리가 있는 프로세스에서 파일을 생성하도록 요구하면 파일이 생성됩니다.

운영 체제

대부분의 컴퓨터 파일 시스템에서 모든 디렉토리에는 디렉토리 자체를 가리키는 엔트리(보통 "라는 이름).가 있습니다.

대부분의 DOS UNIX 명령어셸뿐만 아니라 Microsoft Windows 명령줄 인터프리터 cmd.exeWindows PowerShell에서도 또는 명령을 사용하여 작업 디렉토리를 변경할 수 있습니다.Unix 쉘에서는 이 명령어는 작업 디렉토리의 완전한 경로 이름을 출력합니다.DOS 및 Windows의 동등한 명령어는 인수가 있는지 없는지 여부입니다(Unix에서 인수 없이 사용하면 사용자가 홈디렉토리로 돌아갑니다).

환경 변수(유닉스/리눅스 셸의 경우) 또는 유사 환경 변수(윈도우즈 COMMAND의 경우)입니다.스크립트에서는 COM cmd.exe(4DOS, 4OS2, 4NT )[3]를 사용할 수 있으므로 외부 프로그램을 시작할 필요가 없습니다.Microsoft Windows 파일숏컷에는, 작업 디렉토리를 보존하는 기능이 있습니다.

명령어DR-DOS 7.02 이후의 COM은 종단 라인피드를 [4][3]생략한 명령어의 변형인 를 제공합니다.이를 통해 작업 디렉터리를 나중에 사용할 수 있도록 환경 변수에 저장하는 임시 배치 작업을 생성할 수 있습니다. 예를 들어 다음과 같습니다.

ECHOS SET CD=> SETCD.BAT CHDIR >> SETCD.BAT 콜 SETCDBAT DEL SETCD박쥐

또는 Multiuser DOSDR-DOS 7.02 이상에서는 다양한 내부 및 외부 명령이 매개 변수("Batch")[5]를 지원합니다.그러면 명령어의 출력이 직접 명령줄 입력(배치파일로 리다이렉트 시) 또는 다른 명령어의 파라미터로서의 사용(다른 명령어의 입력으로 사용)어디서 다음과 같은 디렉토리 경로를 발행합니까?C:\DOS명령어는 다음과 같습니다.CHDIR C:\DOS이 경우 나중에 이 디렉토리로 돌아갈 수 있는 임시 배치 작업이 생성됩니다.

작업 디렉토리는 또한 의 토큰에 의해 표시됩니다.PROMPT딥 서브 디렉토리 구조 내부에서도 프롬프트를 짧게 유지하려면 DR-DOS 7.07 COMMAND를 사용합니다.COM은 토큰을 지원하여 가장 깊은 서브디렉토리 수준만 표시합니다.따라서 디폴트값으로 인해 다음과 같은 결과가 발생합니다.C:\DOS>또는C:\DOS\DRDOS>대신 a가 산출됩니다.C:DOS>그리고.C:DRDOS>,각각 다음과 같다.4DOS에도 [3]같은 기능(및 을 사용)이 추가되었습니다.

DOS에서 모든 논리 볼륨의 작업 디렉토리의 절대 경로는 CDS(Current Directory Structure)라고 불리는 어레이와 같은 데이터 구조에 내부적으로 저장됩니다.CDS는 부팅 시 모든 논리 드라이브에 필요한 수의 슬롯을 보유하기 위해 동적으로 할당됩니다(또는 LASTDRIVE[7][8][9]의해 정의됨).이 구조에서는 각 작업 디렉토리의 전체 경로에 66자의 길이 제한이 적용되므로 서브 [7]디렉토리의 가능한 최대 깊이도 암묵적으로 제한됩니다.DOS Plus 및 DR DOS의 오래된 문제들(1991년 BDOS 6.7과 함께 DR DOS 6.0까지)은 절대 [8][10]경로 대신 하위 디렉토리를 내부적으로 링크하는 Concurrent DOS-(그리고 CP/M-86에서 파생된) 커널 위에 DOS 에뮬레이션을 사용하여 구현되었기 때문에 그러한 제한이[8][10][3] 없었다.PalmDOS (BDOS 7.0 탑재)및 DR DOS 6.0(1992년 BDOS 7.1 탑재)이후 DOS 프로그램과의 최대 호환성을 위해 CDS를 사용하도록 전환되었기 때문에 다른 [8][10]DOS와 동일한 제한에 직면했습니다.

프로그래밍 언어

대부분의 프로그래밍 언어는 프로그램의 작업 디렉토리를 설정(변경)하는 기능을 포함하여 운영 체제의 파일 시스템 기능에 대한 인터페이스를 제공합니다.

C 언어에서는 POSIX 함수는 작업 [11]디렉토리를 변경하는 시스템콜에 영향을 줍니다이 인수는 새 디렉토리에 대한 경로를 포함하는 텍스트 문자열로, 절대 또는 이전 디렉토리에 대한 상대 경로입니다.사용 가능한 경우 프로세스에서 호출하여 작업 디렉토리를 설정할 수 있습니다.

다른 언어에서도 같은 기능이 있습니다.Visual Basic에서는 보통 스펠링이 사용됩니다.CHDIR().

Windows API 또는 POSIXC 함수와 달리 Java 프로그래밍 언어 및 Java Virtual Machine은 모두 지원하지 않습니다.chdir()Java 담당 [clarification needed]팀이 대안을 검토하는 동안 변경 요청은 10년 이상 열려 있었지만 2008년에는 제한된 지원만 도입된 후 요청이 거부되었습니다(최초 영향을 미침).java.lang.Runtime그리고 나중에는java.lang.ProcessBuilder 를 참조해 주세요.[12]

「 」를 참조해 주세요.

메모들

  1. ^ 계층형 파일 시스템을 지원하지만 "작업 디렉터리" 개념이 없는 운영 체제가 있습니다. 예를 들어 TI-990 시리즈에 사용되는 Texas Instruments의 DX10입니다.
  2. ^ a b 같은 방법으로 DR-DOS COMMAND를 대신할 수 있습니다.에일리어스가 있습니다.단, 삽입되지 않은 플로피의 패스를 취득하려고 할 때 중대한 에러 메시지나 지연을 피하기 위해 플로피로 억제됩니다.

레퍼런스

  1. ^ getcwd(3)
  2. ^ "Microsoft Windows – SetCurrentDirectory function". Microsoft. Archived from the original on 2018-05-27. Retrieved 2017-05-27.
  3. ^ a b c d Brothers, Hardin; Rawson, Tom; Conn, Rex C.; Paul, Matthias R.; Dye, Charles E.; Georgiev, Luchezar I. (2002-02-27). 4DOS 8.00 online help.
  4. ^ DR-DOS 7.03 WHATSNEW.TXT — Changes from DR-DOS 7.02 to DR-DOS 7.03. Caldera, Inc. 1998-12-24. Archived from the original on 2019-04-08. Retrieved 2019-04-08.
  5. ^ CCI Multiuser DOS 7.22 GOLD Online Documentation. Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP.
  6. ^ Caldera DR-DOS 7.02 User Guide. Caldera, Inc. 1998 [1993, 1997]. Archived from the original on 2016-11-04. Retrieved 2013-08-10.
  7. ^ a b 슐먼 앤드류, 브라운, 랄프 D.;Maxey, 데이비드. 미헬스, 레이먼드 J., 카일, 짐(1994년)[1993년 11월].Undocumented 도스:예약된 MS-DOS를 사용하는 기능과 데이터 구조-MS-DOS6, 노벨 도스와 Windows3.1(2판)을 포함하도록 확장에 대한 프로그래머의 가이드입니다.메사추세츠는 책 읽기:애디슨 웨슬리.아이 에스비엔 0-201-63287-X.아이 에스비엔 978-0-201-63287-3.(xviii+856+vi 페이지, 3.5인치 플로피)Errata:[1][2].
  8. ^ a b c d Paul, Matthias R. (1997-07-30) [1994-05-01]. NWDOS-TIPs — Tips & Tricks rund um Novell DOS 7, mit Blick auf undokumentierte Details, Bugs und Workarounds. MPDOSTIP. Release 157 (in German) (3 ed.). Archived from the original on 2017-09-10. Retrieved 2014-08-06. (NB. NWDOSTIP).TXT는 Novell DOS 7 및 OpenDOS 7.01에 관한 포괄적인 작업이며, 문서화되어 있지 않은 많은 기능 및 내부 기능에 대한 설명을 포함합니다.그것은 저자의 한층 더 큰 작품의 일부이다.MPDOSTIP.ZIP컬렉션은 2001년까지 유지되어 당시 많은 사이트에 배포되었습니다.제공된 링크는 HTML 변환된 이전 버전의NWDOSTIP.TXT파일). [3]
  9. ^ Brown, Ralf D.; et al., eds. (2000-07-16). "Ralf Brown's Interrupt List" (61 ed.). INTER61.
  10. ^ a b c Paul, Matthias R. (1997-06-07) [April 1994]. "Chapter 1.3.xi: Überlange Pfade". NWDOS7UN.TXT — Zusammenfassung der dokumentierten und undokumentierten Fähigkeiten von Novell DOS 7. MPDOSTIP. Release 85 (in German). Archived from the original on 2016-11-07. Retrieved 2016-11-07.
  11. ^ "The Open Group Base Specifications Issue 6 and IEEE Std 1003.1" (Issue 6, 2004 ed.). The IEEE and The Open Group. 2004 [2001]. Archived from the original on 2018-02-09. Retrieved 2018-05-27.
  12. ^ "JDK-4045688: Add chdir or equivalent notion of changing working directory". Bug Database. Oracle (Sun Microsystems). 2008-08-18 [1997-04-17]. Archived from the original on 2017-10-19. Retrieved 2011-02-20.

추가 정보

외부 링크