본문으로 바로가기
homeimage

컴퓨터

해당되는 글 1752
  • thumbnail
    컴퓨터/프로그래밍

    C언어 프로그램 종료 함수 exit()

    C함수 프로그램 종료 exit() exit()는 프로그램을 종료합니다. 헤더: stdlib.h 형태: void exit(int status) 인수: int main() 함수의 반환값에 해당하는 정수 반환: - C언어 exit() 함수 예제 #include #include // exit() #include // getuid() int main() { if ( 0 != getuid()){ printf( "수퍼유저만 사용할 수 있습니다.\n"); exit( -1); } printf( "이것은 exit() 샘플입니다.\n"); return 0; } C언어 exit() 예제 실행 결과 ]$ ./a.out 수퍼유저만 사용할 수 있습니다. ]$ su - Password: ]$ ./a.out 이것은 exit() 샘플입..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 프로세스 생성 함수 vfork()

    C함수 프로세스 생성 vfork() vfork()도 fork()처럼 자식 프로세스를 생성합니다만 차이점은 fork()가 광역이든 지역이든 메모리 공간까지 똑 같은 복사본을 만들고 부모와 자식이 서로 다른 메모리 공간을 사용하지만 vfork()는 프로세스만 만들고 부모의 메모리 공간을 그대로 이용합니다. 그러므로 부모에서 사용하는 광역변수나 지역변수를 자식에서 사용하면 변경이 되므로 매우 유의해야 합니다. 또한, 자식 프로세스가 생성되면 자식 프로세스가 종료될 때까지 부모프로세스는 대기 상태가 됩니다. fork()가 프로세스의 주소 공간까지 모두 복사본으로 만들어서 시스템 자원에 부담을 주기 때문에 vfork()를 만들었습니다만, 기술의 발전으로 fork()의 단점이 보완되어서 최근에는 vfork()를 사..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 버퍼 내용을 디스크로 쓰기 함수 fsync()

    C함수 버퍼 내용을 디스크로 쓰기 fsync() 파일로 아직 쓰기가 되지 않은 메모리의 내용을 모두 쓰기가 되도록 합니다. sync()가 모든 메모리에 대해서라면 fsync()는 지정된 파일 디스크립터에 대해 진행합니다. 헤더: unistd.h 형태: int fsync (int fd) 인수: int fd 파일 디스크립터 반환: int 0 == 성공, -1 == 실패 C언어 fsync() 함수 예제 #include #include // strlen() #include // open() #include // sync() int main() { int fd; char *str = "https://badayak.com"; fd = open( "test.txt", O_WRONLY ¦ O_CREAT, 0644); ..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 버퍼 내용을 디스크로 쓰기 함수 sync()

    C함수 버퍼 내용을 디스크로 쓰기 sync() 파일로 아직 쓰기가 되지 않은 메모리의 내용을 모두 쓰기가 되도록 합니다. 파일로 쓰기를 하더라도 바로 저장되지 않고 메모리 버퍼에 일단 저장되었다가 물리적 디스크로 저장되는데, 정전등의 문제로 중요 자료를 버릴 수 있다고 생각된다면 유용하게 사용할 수 있습니다. 헤더: unistd.h 형태: void sync (void) 인수: - 반환: - C언어 sync() 함수 예제 #include #include // strlen() #include // open() #include // sync() int main() { int fd; char *str = "https://badayak.com\n"; fd = open( "test.txt", O_WRONLY ¦ O..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 루트 디렉토리 지정 함수 chroot()

    C함수 루트 디렉토리 지정 chroot() 특정 디렉토리를 루트 디렉토리 "/"로 지정합니다. 이 함수를 사용하는 이유는 특정 디렉토리 안에서만 작업을 한다면, 매우 긴 작업 디렉토리 이름 대신에 "/"로 짧게 사용할 수 있어서 작업이 편리합니다. 단, 이 함수는 수퍼 유저만 사용할 수 있습니다. 헤더: unistd.h 형태: int chroot(const char *path) 인수: char *path 루트 디렉토리로 지정할 디렉토리 반환: int 0 == 성공, -1 == 실패 C언어 chroot() 함수 예제 현재 작업 디렉토리를 "/"로 지정합니다. "/"로 지정하면 이후로 작업을 "/"를 기준으로 진행할 수 있습니다. #include #include #include #include int mai..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 소유권 변경하기 함수 fchown()

    C함수 소유권 변경하기 chown() 파일의 소유권을 변경합니다. 주의하실 점은 root, 즉 수퍼유저가 실행했을 때 가능하며, chown() 과는 달리 파일 이름이 아닌 파일 디스크립터를 이용합니다. 헤더: unistd.h 형태: int fchown(int fd, uid_t owner, gid_t group) 인수: int fd 파일 디스크립터 uid_t owner 파일에 대한 새로운 소유자의 사용자 ID, 만일 -1이면 변경 취소 gid_t group 파일에 대한 새로운 소유자의 그룹 ID, 만일 -1이면 변경 취소 반환: int 0 == 성공, -1 == 실패 C언어 fchown() 함수 예제 #include #include #include #include #include int main() { i..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 소유권 변경하기 함수 chown()

    C함수 소유권 변경하기 chown() 파일의 소유권을 변경합니다. 주의하실 점은 root, 즉 수퍼유저가 실행했을 때 가능합니다. 헤더: unistd.h 형태: int chown(const char *path, uid_t owner, gid_t group) 인수: char *path 파일 전체 이름 uid_t owner 파일에 대한 새로운 소유자의 사용자 ID, 만일 -1이면 변경 취소 gid_t group 파일에 대한 새로운 소유자의 그룹 ID, 만일 -1이면 변경 취소 반환: int 0 == 성공, -1 == 실패 C언어 chown() 함수 예제 #include #include #include #include int main() { struct passwd *root_pw; if ( 0 != getu..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 파일의 접근 권한 변경 함수 fchmod()

    C함수 파일의 접근 권한 변경 fchmod() 파일의 접근권한을 변경합니다. 헤더: sys/stat.h 형태: int chmod (const char *file, mode_t mode) 인수: char *file 변경하려는 파일 이름 mode_t mode 접근 권한 반환: int 0 == 성공, -1 == 실패 C언어 fchmod() 함수 예제 #include #include int main() { if ( -1 == chmod( "a.out", 0111)) printf( "접근권한 변경 실패\n"); } C언어 fchmod() 예제 실행 결과 ]$ ./a.out 합계 20 drwxr-xr-x 2 jwjw jwjw 4096 9월 25 10:33 . drwxr-xr-x 7 jwjw jwjw 4096 9월 ..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 파일 접근 권한 변경 함수 chmod()

    C함수 파일 접근 권한 변경 chmod() 파일의 접근권한을 변경합니다. 헤더: sys/stat.h 형태: int chmod (const char *file, mode_t mode) 인수: char *file 변경하려는 파일 이름 mode_t mode 접근 권한 반환: int 0 == 성공, -1 == 실패 C언어 chmod() 함수 예제 #include #include int main() { if ( -1 == chmod( "a.out", 0111)) printf( "접근권한 변경 실패\n"); } C언어 chmod() 예제 실행 결과 ]$ ./a.out ]$ ls -al 합계 20 drwxr-xr-x 2 jwjw jwjw 4096 9월 25 10:33 . drwxr-xr-x 7 jwjw jwjw 40..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 파일 또는 디렉토리 이름을 변경 함수 rename()

    C함수 파일 또는 디렉토리 이름을 변경 rename() 파일 또는 디렉토리 이름을 변경합니다. 주의 하실 것은 새로 지정하는 이름이 이미 있다면 기존의 파일이나 디렉토리를 삭제하고 이름을 변경하게 됩니다. 헤더: stdio.h 형태: int rename( const char *oldpath, const char *newpath) 인수: char *oldpath 이미 존재하는 파일 또는 디렉토리 이름 char *newpath 변경하려는 새 이름 반환: int 0 == 성공, -1 == 실패 C언어 rename() 함수 예제 #include int main() { if ( -1 == rename( "a.out", "sample_exec")) printf( "이름 변경 실패\n"); } C언어 rename()..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 파일 또는 디렉토리 삭제 함수 remove()

    C함수 파일 또는 디렉토리 삭제 remove() 파일 또는 디렉토리를 삭제합니다. 헤더: stdio.h 형태: int remove(const char *pathname) 인수: char *pathname 삭제할 파일이나 디렉토리 반환: int 0 == 성공, -1 == 실패 C언어 remove() 함수 예제 #include int main() { if ( -1 == remove( "a.out")) printf( "파일 삭제 실패n"); } C언어 remove() 예제 실행 결과 ]$ ./a.out ]$ ls test.c
  • thumbnail
    컴퓨터/프로그래밍

    C언어 심볼릭 링크를 생성 함수 symlink()

    C함수 심볼릭 링크를 생성 symlink() 심볼릭 링크를 생성합니다. 헤더: unistd.h 형태: int symlink( const char *oldpath, const char *newpath) 인수: char *oldpath 이미 존재하는 파일 이름 char *newpath 만들고자하는 링크 이름 반환: int 0 == 성공, -1 == 실패 C언어 symlink() 함수 예제 #include #include int main() { if ( -1 == symlink( "/usr/include", "gcc-include")) printf( "링크 생성 실패\n"); } C언어 symlink() 예제 실행 결과 ]$ ./a.out ]$ ls -al drwxrwxr-x 13 jwjw jwjw 4096 ..
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

    이모티콘을 클릭하면 댓글창에 입력됩니다.