lstat, stat
·
LINUX/Linux
Interface int lstat(const char *restric path, struct stat *restrict buf) int stat(const char *restrict path, struct stat *restrict buf) Function 파일의 이름을 사용해 파일의 상태정보를 가져옴 Parameter path: 문자열로 '경로'에 해당 buf: 사용자가 제공하는 버퍼, 해당 경로의 파일 정보 저장소 Return Success: 0 Fail: -1 ★ lstat, stat함수의 차이점 접근 하고자 하는 대상 파일이 심볼릭 링크일 경우 발생! lstat -> 링크에 대한 정보를 리턴 stat -> 심볼릭 링크가 가리키는 원래 파일의 정보를 리턴. 그럼 stat 구조체의 정보를 아라보자...
환경변수 설정 방법 & PATH의 역할
·
LINUX/Linux
[기본 지식]원래 유닉스 or 리눅스 시스템 상에서는쉘에서 파일의 '경로명'을 모두 입력해줘야 프로그램이 실행된다.하지만 흔히 사용하는 프로그램 도구들 (ex. vi Editor, vim.. env 등등)은vi , vim , env만 쳐도 실행 되는데 그 이유가 실행 파일이 주어지면 쉘은'PATH' 환경변수에 있는 디렉토리에서 실행파일을 알아서 찾아준다.이 때 경로명들을 콜론(:)으로 구분해서 가지고 있다.ex) /usr/bin:/etc:/usr/local/bin:  (중략)이러한 경로 목록을 검색 경로(Search Path) 라고 한다. :콜론 왼쪽에 있는 것 부터 순차적으로 찾아나간다.고로 "따로 경로명을 제시 하지 않은" 실행 파일은PATH에 등록된 디렉토리에서 먼저 찾아보고PATH에 등록된 모든 ..
환경변수 PATH에 현재 디렉토리 '.'을 추가하면 안되는 이유?
·
LINUX/Linux
보안상문제가 있을 수 있고 표준 시스템 프로그램대신 동일 이름의 로컬 프로그램을 실행 시켜 이상한 결과를 나타낸다.. 왜 그럴까? /usr/local/bin 디렉토리에 프로그 램들이 있고 그리 엄격하지 않은 보안 상태에 있다.(단지 이 디렉토리가 root의 패스에 없을뿐..) 어쨌거나, 만약에 어떤 데몬이 'foo' 라는 명령을 실행하는데 /usr/local/bin 디렉토리가 패스에 걸려있다면 '/bin/foo' 대신에 '/usr/local/bin' 이 실행될수도있을 것이다. 그렇다면 /usr/local/bin 에 쓰기 권한이 있는 사용자는 누구나 시스템에 침입해 들어갈 수 있게 된다. => 나의 해석 아 그니까 원래 환경변수에서 (root)/bin/ 요기서 찾아야하는데 환경변수 순서상 /usr/loca..
undefined reference to 'pthread_create'
·
LINUX/Error
문제 상황 #include #include ~~~~ 등등등 포함시켰음에도 불구하고 pthread 등 함수를 사용할 수 없다고한다. undefined rundefined reference to 'pthread_create' collect2: error: ld returned 1 exit status 해결 방법 compile 옵션으로 끝에 -pthread 추가 ex) gcc -o 실행파일명 소스코드명1.c 소스코드명2.c -lpthread 이외에도 math.h 등 특정 헤더파일 속에 정의된 함수를 사용할 때 붙어넣어야 하는 option 들이 있다. -lm 이라든가.. -lpthread라든가..
GNU Compiler 실행 ./
·
LINUX/Linux
./이 의미하는건 ex)./showname . -> 현재 디렉토리의 showname파일을 실행시켜라 근데 왜 showname파일을 실행할 때마다 앞에 ./을 붙이냐고?? 맨 앞의 도트 문자(.)는 현재 디렉토리를 의미하지 (tmp라는 디렉토리) . 그 다음 디렉토리 구분 문자 슬래쉬(/)를 쓰고 유 유닉스는 기본적으로 PATH 라는 환경변수에 있는 디렉토리에서만 실행화일을 찾으니까. 만약 PATH 라는 환경변수에 현재 디렉토리를 의미하는 도트 문자(.)가 들어있지 않으면 현재 디렉토리의 실행파일은 절대 실행되지 않아. 오로지 PATH 에 지정한 순서대로 수행하지~ 근데 PATH 를 어떻게 보냐고? export $PATH 치면 현재 PATH가 걸린 전체 디렉토리 가출력됨. PATH 환경변수를 손보면 된다!..
Alias
·
LINUX/Linux
쉘은 CUI(Command-line User Interface)기반으로 여러 기능을 제공한다. .c파일을 컴파일하기 위해서 입력하는 명령어는 다음과 같다 gcc -o 오브젝트파일명 소스코드.c 근데 계속 하다보면 gcc -o 오브젝트파일명을 항상 소스코드.c에서 '소스코드명'으로 하고싶을 때가있다. (그냥 타이핑하기 귀찮아지는 때가 온다.) 그럴 때 쓰면 좋은기능 alias! 사전적의미는 별명, 별칭이다. 1. Function Alias 생성 2. Interface alais 별칭='명령' ※ =사이에 공백이 있어선 안된다. 3. Example alias ls='ls -l'설정 후로는 ls만 입력해도 ls -l을 입력한 결과와 같아진다. 설정했던 alias를 삭제하고싶다면 1. Function alias..