본문 바로가기

반응형

Programming/C/C++

(42)
C/리눅스 어셈블리 프로그래밍 - 1 기초적인 리눅스 어셈블리 프로그래밍몇가지 예제와 기본적인 주석과 매크로 사용법만 적었습니다. >>> return 0;1234567891011segment .text global _start_start: mov eax, 1 mov ebx, 0 int 0x80 segment .data segment .bss cs >>> db의 데이터 print123456789101112131415161718192021222324252627segment .text global _start_start: ; \n mov eax, 4 mov ebx, 1 mov ecx, init mov edx, 1 int 0x80 ; print mov eax, 4 mov ebx, 1 mov ecx, my ; mov edx, 10 ; 글자(9) + ..
C/Linux/디렉토리 정보 검색 디렉토리 정보 검색- 디렉토리 열기 : opendir(3)성공하면 열린 디렉토리를 가리키는 DIR 포인터를 리턴- 디렉토리 닫기 : closedir(3)- 디렉토리 정보 읽기 : readdir(3)디렉토리의 내용을 한 번에 하나씩 읽어옴디렉토리 열고 정보 읽기12345678910111213141516171819202122#include #include #include int main(void) { DIR *dp; struct dirent *dent; if ((dp = opendir("hanbit")) == NULL) { perror("opendir : hanbit"); exit(1); } while ((dent = readdir(dp))) { printf("Name : %s ", dent->d_name)..
C/Linux/디렉토리 관련 함수 디렉토리 관련 함수- 디렉토리 생성 : mkdir(2)path에 지정한 디렉토리를 mode 권한에 따라 생성한다.- 디렉토리 삭제 : rmdir(2) - 디렉토리명 변경 : rename(2) 디렉토리 생성/삭제/이름 변경12345678910111213141516171819202122232425262728#include #include #include #include int main(void) { if (mkdir("han", 0755) == -1) { perror("han"); exit(1); } if (mkdir("bit", 0755) == -1) { perror("bit"); exit(1); } if (rename("han", "hanbit") == -1) { perror("hanbit"); exit..
C/Linux/심볼릭 링크 정보 검색 심볼릭 링크 정보 검색- 심볼릭 링크 정보 검색 : lstat(2)lstat : 심볼릭 링크 자체의 파일 정보 검색심볼릭 링크를 stat 함수로 검색하면 원본 파일에 대한 정보가 검색된다.- 심볼릭 링크의 내용 읽기 : readlink(2)심볼릭 링크의 데이터 블록에 저장된 내용 읽기- 원본 파일의 경로 읽기 : realpath(3)심볼릭 링크가 가리키는 원본 파일의 실제 경로명 출력lstatFunc 함수 사용 하기12345678910111213141516171819202122232425#include #include #include #include int main(void) { struct stat buf; printf("1. stat : unix.txt ---\n"); stat("unix.txt", ..
C/Linux/링크 파일 생성 링크 파일 생성- 이미 있는 파일이나 디렉토리에 접근할 수 있는 새로운 이름- 같은 파일/디렉토리지만 여러 이름으로 접근할 수 있게 한다- 하드링크 : 기존 파일과 동일한 inode 사용, inode에 저장된 링크 개수 증가- 심볼릭 링크 : 기존 파일에 접근하는 다른 파일 생성(다른 inode 사용) - 하드링크 생성 : link(2)두 경로는 같은 파일시스템에 존재해야 함>> CentOS 파일 시스템 변경됨 :XFScat /etc/fstab link 함수 사용1234567891011121314#include #include #include #include int main(void) { struct stat buf; stat("unix.txt", &buf); printf("Before Link Coun..
C/Linux/파일 접근권한 변경 파일 접근 권한 변경- 파일명으로 접근권한 변경 : chmod(2)path에 지정한 파일의 접근권한을 mode값에 따라 변경접근권한을 더할 때는 OR연산자를, 뺄 때는 NOT연산 후 AND 연산 사용.chmod(path, S_IRWXU);chmod(path, S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH);mode |= S_IWRGRP;mode &= ~(S_IROTH);- 파일 기술자로 접근 권한 변경 : fchmod(2) chmod 함수 사용12345678910111213141516171819#include #include #include int main(void) { struct stat buf; chmod("unix.txt", S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH); ..
C/Linux 파일 접근 권한 검색 파일 접근 권한 검색 - 상수를 이용한 파일 접근 권한 검색- 접근 권한 상수 목록 (운영체제에서 제공)소유자의 접근권한 추출과 관련된 상수만 정의소유자 외 그룹과 기타사용자의 접근권한은?shift 연산자를 이용하여 오른쪽으로 3비트,6비트 이동시켜서 AND 연산을 수행한다.st_mode & (S_IREAD >> 3) - POSIX에서 정의한 접근권한 검색 관련 상수 목록 statAccess.c - 상수를 이용해 파일 접근 권한 검색12345678910111213141516171819#include #include #include int main(void) { struct stat buf; stat("unix.txt", &buf); printf("Mode = %o (Hexdeacimal : %x)\n",..
C/Linux 파일 종류 검색 파일 종류 검색 - 상수를 이용한 파일 종류 검색파일 종류에 대한 상수 - st_mode의 16진수 값과 0xF000(=S_IFMT) and 연산하면 파일 종류 부분 만 나타내는 정보를 획득 할 수 있다. statInfo.c - 상수를 이용해 파일 종류 검색1234567891011121314151617181920212223242526272829#include #include #include int main(void) { struct stat buf; int kind; stat("unix.txt", &buf); printf("Mode = %o (Hexadecimal : %x)\n", (unsigned int)buf.st_mode, (unsigned int)buf.st_mode); kind = buf.st_..

반응형