리눅스
![[리눅스] chmod 함수 직접 구현하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzFL5U%2FbtrEUifTHUo%2FpcARyKlCvsCoyum6WbffuK%2Fimg.png)
[리눅스] chmod 함수 직접 구현하기
오늘 학교 수행평가로 파일의 접근 권한을 변경하는 C 프로그램을 작성하고 제출했는데 제대로 구현하지 못했다. 문제 내용 명령행 인자로 파일과 접근 권한을 입력받아 파일의 접근 권한을 변경하는 코드를 작성해라. 예: ./mychmod g+w data.txt 접근 권한을 8진수 숫자로 받는 게 아니라 문자 모드로 입력받는 게 조건이라 까다로웠다. 접근 권한 문자 모드로 변경 사실 문자 모드로도 변경할 수 있는지 몰랐는데; 우선 파일 만들면 기본으로 설정되는 0644 = 644는 차례대로 u, g, o의 권한을 가리키는 것이고 r = 4, w = 2, x = 1이기 때문에 이렇게 해석할 수 있다. 파일 소유자 u의 접근 권한은 rw- (4 + 2 = 6), 그룹 g의 접근 권한은 r-- (4), 나머지 o의 ..

GCC 컴파일 에러 undefined reference to '함수' & 컴파일 과정
undefined reference to '함수' 에러가 뜨는 몇 가지 경우가 있는데, 내 경우는 아래와 같다. // tiny.c #include "csapp.h" void csapp_func() { } tiny.c // csapp.h void csapp_func(); csapp.h // csapp.c #include "csapp.h" void csapp_func() { } csapp.c 즉, tiny.c가 csapp의 헤더파일을 포함하고 있는 구조다. 이 상태에서 내가 시도해본 것은 1. tiny.c만 컴파일(당연히 안 됨) 2. csapp.c를 컴파일한 후에 tiny.c를 컴파일(안 됨) 3. 링킹을 제외하고 각각 컴파일 한 후에, 마지막에 한꺼번에 컴파일(됨) 4. 그냥 한꺼번에 컴파일(됨) // ..
[리눅스] 저수준 파일 입출력으로 파일 복사하는 프로그램 만들기
학교 과제로 저수준 파일 입출력 함수를 이용해서 파일을 복사하는 간단한 C 프로그램을 만들었다. 정확한 문제 내용은, newcp src.c dst.c 위 명령어를 실행하면 src.c의 내용을 dst.c에 복사하게 만들어야 한다. 코드 #include #include #include #include int main(int argc, char *argv[]) { int fd1, fd2; char fileName1[50], fileName2[50]; char buf[10]; strcpy(fileName1, argv[1]); strcpy(fileName2, argv[2]); fd1 = open(fileName1, O_RDONLY); fd2 = open(fileName2, O_CREAT | O_WRONLY | O..