2013-11-10 2 views
0

우분투의 ./Desktop/TestFolder0에서 실행되는 프로그램이 있습니다.로컬 폴더에 디렉토리 만들기

프로그램이 해당 TestFolder0 내에서 실행될 때 Outputs라는 폴더를 만들고이 폴더 내에 fileded Output.txt를 저장하려고합니다. 나는 새 폴더를 TestFolderN 내 프로그램을 이동하면과 Output.txt이 항상 저장됩니다하는 방식으로 내 코드를 작성하려는

./Desktop/TestFolder0/Outputs 

: 같은 것 같습니다.

Creating a new directory in C에 관해서는 mkdir을 가르쳐주었습니다. 나는 아직도 그것을 사용하는 방법을 완전히 알지 못한다. 예를 들어 새로운 디렉토리에 경로를 줄 필요가 있지만 폴더 계층에있는 곳을 가리키는 방법을 모른다. 또한

이 도와주세요 폴더 등을 열 수 mkdir 권한을 부여 할 필요가

+0

"man 2 chdir'과 상담하십시오. –

+0

출력물을 생성하기위한 폴더의 전체 경로를 지정하지 마십시오. 상대 경로를 지정할 수 있습니다. 'man 2 getcwd'를 실행하여 현재 디렉토리를 얻는 방법을 배울 수 있습니다.그냥 서사시 인 – blueblob

답변

0
당신을 위해

좋은 소식은 당신이 파일의 주소를 복용 기능에 대한 절대 경로를 제공하지 않는 경우이다 등 fopen 또는 mkdir로 , 그들은 항상 경로가 현재 주소와 관련 있다고 가정합니다. 따라서, 경우에 당신은 쓰기 : 코드를 실행하는 경우

mkdir("Outputs"); 

는 항상 Outputs 디렉토리를 만들 것입니다. 실행 파일 자체가 아닌 디렉터리를 만들려면 실행 파일 위치를 검색하는 방법에 대한 this question을 참조하십시오. 즉, 리눅스에서는 read 무엇을 가리킬 수 있습니다 /proc/self/exe. 권한에 대해서는


(당신이 가장 가능성이 있지만 첫 번째를 원하는), 당신은 간단하게 사용할 수있는 모든 권한을 의미하는 것이 0777 (111111111에 대한 진수)을 제공 할 수 있습니다. mkdir (실제로는 그 아래의 시스템 호출)은 자신이 가지고 있지 않은 권한을 자동으로 제거하므로 자신이 가지고 있지 않은 디렉토리 권한을 부여 할 수 없습니다.

이 비트가 무엇을 나타내는 지 알지 못하면 in wikipedia을 읽을 수 있습니다. 완전을 기하기 위해 간략하게 설명하겠습니다. 기존의 유닉스 시스템에서 권한 (당신이 ls -l을 수행 할 때 반환되는 것들) 형태로 존재 :

drwxrwxrwx 
|\_/\_/\_/ 
| | | | 
T O G R 

T 디렉토리 예를 들어 d를 들어, 파일의 유형이 무엇인지 알려줍니다. O은 파일 소유자에 대한 세 가지 권한 집합인데 G은 비슷한 사용 권한이지만 파일 소유자가 속한 그룹에서는 R이 다른 사용 권한 (미안, 초기에 O이 사용되었습니다.)이 허용됩니다. 각 사용 권한 집합 (rwx)은 읽기, 쓰기 및 실행 권한을 선택합니다. 디렉토리를 탐색 할 수 있으려면 디렉토리에 대한 실행 권한이 필요합니다.

그래서 다른 사람이 숨길 수없는 디렉토리를 갖고 싶다면 0755로 권한을 부여 할 수 있습니다. 개인 디렉토리는 권한 0750을 가질 수 있으며 수퍼 개인은 권한 0700을 가질 수 있습니다. 모든 사용자 간의 공유 디렉토리 0777 권한을 가질 수 있습니다.

+0

입니다. 감사합니다. –

+0

@CharlieK, 물론! – Shahbaz