당신을 위해
좋은 소식은 당신이 파일의 주소를 복용 기능에 대한 절대 경로를 제공하지 않는 경우이다 등 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 권한을 가질 수 있습니다.
"man 2 chdir'과 상담하십시오. –
출력물을 생성하기위한 폴더의 전체 경로를 지정하지 마십시오. 상대 경로를 지정할 수 있습니다. 'man 2 getcwd'를 실행하여 현재 디렉토리를 얻는 방법을 배울 수 있습니다.그냥 서사시 인 – blueblob