반응형 분류 전체보기145 C049_fork 함수 사용하기 fork함수는 자식 프로세스를 생성하는 함수입니다. 프로세스가 무엇일까요??? 프로세스 컴퓨터에서 실행되는 프로그램을 의미합니다. 쉽게 설명을 하면 저희가 게임을 할 때에 게임 프로그램을 실행하게 되는데 이를 프로세스라고 합니다. 지금 구글도 어떻게 보면 프로그램으로 실행되어 하나의 프로세스라고 할 수 있습니다. 현재 프로세스를 부모 프로세스라 하고 fork로 생성한 프로세스를 자식 프로세스라 합니다. 이때 자식 프로세스 생성 시 fork시작 전까지의 모든 내용을 복사합니다. fork #include pid_tfork(void); fork는 자식 프로세스르 생성합니다. 만약 실패 시 '-1'을 리턴하게 됩니다. 부모 프로세스는 자식 프로세스의 pid를 반환하고 자식 프로세스는 '0'을 리턴합니다. #in.. 2024. 1. 7. C048_unlink 함수 사용하기 unlink는 파일을 삭제하는 명령어입니다. 어떻게 삭제가 진행되는 것일까요??? 진행에 앞서서 inode에 대해 조금은 알아야 할 필요가 있습니다. inode inode는 유닉스 계의의 운영체제에서 사용되고 있는 파일 관리자라고 생각하면 좋을 것 같습니다. inode에는 파일의 권한, 형태, 고유 번호, 소유자 및 그룹, 원본 데이터의 주소등 파일에 대한 모든 것이 기록이 되어 있습니다. 그림에서 처럼 하드링크와 메모리 사이를 inode가 연결을 해줍니다. 메모리에 접근을 하여 관리를 해주는 역할을 하는 것입니다. 여기서 unlink는 하드링크와 inode의 사이를 끊어주고 하드링크를 삭제하는 역할을 합니다. 그렇게 되면 이제 더 이상 메모리에 접근을 하지 못해 파일이 삭제되는 것입니다. unlink를.. 2024. 1. 6. C047_access 함수 사용하기 access함수는 파일이 존재하는지 어떤 권한이 있는지 판단하는 함수입니다. access #include intaccess(const char *path, int mode); path가 파일의 위치를 나타내고, mode가 파일의 어떤 점을 확인할 것인지 확인하는 것입니다. path에 입력된 파일이 mode에 입력된 조건에 충족을 한다면 0을 리턴 그렇지 않다면 -1을 리턴합니다. 예시를 한번 들어보도록 하겠습니다. 'exist'파일이 존재하는지 하지 않는지 확인하도록 하겠습니다. #include #include int main(void) { if (access("./exist", F_OK) == 0) printf("exist file is exist.\n"); else printf("exist file .. 2024. 1. 5. C046_exit 함수 사용하기 exit함수에 대해 설명하기에 앞서서 noreturn함수에 대해 조금은 알아야 할 필요가 있습니다. noreturn 말 그대로 리턴되는 값이 없다는 뜻입니다. 그면 void와의 차이점은 무엇일까요??? void함수는 main문에서 실행된 후에도 그 후의 코드들을 진행할 수 있습니다. 하지만 noreturn함수는 그렇지 않습니다. 역시 말로 설명하니 어려우니 간단한 예제를 살펴보도록 하겠습니다. #include #include void ing(void) { printf("\n ... ing ... \n"); } int main(void) { printf("main function start\n"); ing(); printf("\nmain function finish\n"); exit(0); printf(".. 2024. 1. 4. 이전 1 2 3 4 5 6 7 8 ··· 37 다음 반응형