분류 전체보기

유닉스

링크 파일 생성

링크 보고 싶을 때 -i 붙이기 ls -ali unix* 하드 링크 파일에 접근할 수 있는 파일명 새로 생성함 기존 파일과 동일한 inode 사용 (inode 공유) 생성하면 inode에 저장된 링크 개수가 증가함 삭제 시 링크 개수만 줄어듬 #include int link(const char *existion, const char *new); int main(){ struct stat buf; stat("filename",&buf); link("filename", "filename2"); //filename의 하드링크 filename2 생성 stat("filename",&buf); printf("link count = %d",(int)buf.st_nlink); } 심볼릭 링크 기존 파일에 접근 가능한 ..

유닉스

파일 접근 권한 제어

st_mode 구조 _rwer__r__ 파일 종류 1비트, (특수 접근 권한 3비트,) user 권한 3비트, group 권한 3비트, other 권한 3비트 111100100 2진수로 표현, 각 3자리를 10진수로 변환해서 744로 표현 가능함 r: read, w: write, e: execute 권한 바꾸고 싶을 때 chmod u-x, g+w, o+w testdata -> user에서 실행 권한 빼고 group, other에 write 권한 주기 chmod 600 testdata -> testdata의 권한을 600(110000000) 으로 바꾸기 파일 소유자 : 사용자 식별번호로 구별 uid, gid, /etc/password 유효 사용자 식별번호 euid set user-id(04000) : 일시..

유닉스

파일 정보 검색

stat 파일명으로 파일 정보 검색 #include #include #include int stat(const char *restrict path, struct stat *buf); int main(){ struct stat buf; stat("파일명", &buf); printf("Inode = %d\n",(int)buf.st_mode); } st_dev : inode가 저장되어 있는 장치의 장치 번호 st_ino : inode 번호 %d st_mode : 파일 형식, 접근 권한 %o st_nlink : 하드 링크 개수 %d st_uid : 파일 소유자의 UID %d st_gid : 파일 소유 그룹의 GID %d st_rdev : 장치 파일일 경우 주 장치 번호, 부 장치 번호 %d st_atime : ..

유닉스

고수준 파일 오프셋

fseek #include int fseek(FILE *stream, long offset, int whence); int main(){ fseek(fp, 1, SEEK_CUR); } lseek와 유사하게 동작함 성공시 0, 실패시 EOF 리턴함 현재 오프셋 구할 때는 lseek처럼 하면 안됨 ftell, rewind #include long ftell(FILE *stream); void rewind(FILE *stream); ftell : 현재 오프셋 리턴 rewind : 처음 위치로 오프셋 즉시 이동

유닉스

고수준 파일 입출력

fopen, fclose #inlcude FILE *fopen(const char *filename, const char *mode); int fclose(FILE *stream); int main(){ FILE *fp; fp = fopen("unix.txt","r"); fclose(fp); } fopen : filename으로 지정한 파일을 mode에 따라서 열고 파일 포인터 리턴 mode 값 : r, w, a, rb, wb, ab, r+, w+, a+ , rb+, wb+, ab+ + 붙으면 2개 (읽기 쓰기 / 추가 읽기 ..) mode 값 넣을 때 따옴표 잊지 않기! fread #include size_t fread(void *ptr, size_t size, size_t nitems, FILE *s..

유닉스

lseek, dup, fcntl

lseek 파일의 오프셋 지정하는 함수 #include #include off_t lseek(int fildes, off_t offset, int whence); int main(){ lseek(fd, 5, SEEK_SET); //파일의 처음부터 5번째 위치로 이동 } fildes : 파일 기술자 offset : 이동할 오프셋 위치 whence : 오프셋 기준 위치 (SEEK_SET, SEEK_CUR, SEEK_END) off_t는 long으로 정의되어 있음 파일을 읽/쓰고 싶은 위치로 옮길 때 사용하면 된다. dup, dup2 파일 기술자 복사(또는 지정)하는 함수 #include int dup(int fildes); int dup2(int fildes, int fildes2); int main(){ ..

유닉스

파일 입출력

저수준 파일 입출력 파일 지시자는 파일 기술자 (file descriptor), int type 유닉스 커널의 시스템 호출을 사용해 파일 입출력 실행함 파일에 빠르게 접근 가능, 특수 파일도 읽고 쓸 수 있음 (바이트 단위로 파일 내용 다뤄서) 바이트 단위를 적당한 형태의 데이터로 변환하는 함수가 필요함 open, close, read, write, lseek, dup, dup2, fcntl, fsync 고수준 파일 입출력 파일 지시자는 파일 포인터 (file pointer) C언어의 표준 함수로 제공, 여러 형태의 데이터 형식 지원함 버퍼 단위로 읽고 쓰기 가능 fopen, fclose, fread, fwrite, fputs, fgets, fprintf, fscanf, fseek 파일 기술자 (file..

유닉스

유닉스 시스템 프로그래밍 개요

유닉스 시스템 도구 make, 명령행 인자 중요! 유닉스 기본 명령 로그인/로그아웃 telnet : 유닉스 시스템에 접속 telnet hanb.co.kr logout, exit : 유닉스 시스템에서 접속 해제 프로세스 관련 명령 ps : 현재 실행 중인 프로세스의 정보 출력 -ef : 모든 프로세스에 대한 상세 정보 출력 ex) ps / ps -ef / ps -ef | grep ftp kill : 프로세스 강제 종료 -9 : 강제 종료 ex) kill 5000 / kill -9 5001 파일/디렉토리 조작 pwd : 현재 디렉토리 경로 출력 ls : 디렉토리 내용 출력 -a : 숨김파일 출력 -l : 파일 상세정보 출력 ex) ls -ail : 파일의 모든 정보 출력 / ls -a : 간단 출력 / ls..

hahihi
'분류 전체보기' 카테고리의 글 목록 (22 Page)