LINUX

· LINUX/Linux
프로그램 목적 각각 매개변수의 값 (0~9)를 출력하는 10개의 쓰레드를 생성하여 화면에 쓰레드 아이디-매개변수값 0~9를 출력하는 프로그램을 만들어보자. 도중에 쓰레드 생성에 실패하면 실패 에러메시지를 띄우고 해당 id의 쓰레드의 값은 출력하지 않고 다음라인으로 넘어간다! 이 코드에는 문제가 있다! 모든 쓰레드가 0~9이 아니라 10을 출력한다 for (i = 0; i < NUMTHREADS; i++) if (perror = pthread_create(tid + i , NULL, printarg, (void *)&i)) { // ~~ (중략) } 이 코드가 원인이다. 사실 pthread_create를 호출하면 메인은 OS에게 "쓰레드를 생성해줘!"라고 요청을 보내고 '요청에 성공!'하기만 하면 0을 바..
· LINUX/Linux
만들고자 하는 프로그램 개요 정의 a.txt 에 쓰여있는 내용을 b.txt 로 복사하며 몇 바이트가 복사된 것인지 메시지를 띄우고자한다.! 1. 먼저 파일 내용을 복사할 함수 'copyfilemalloc'을 들여다보자. Q1. 만약 동적 메모리 할당이 아닌 bytesp를 static으로 선언한다면? A. 하나의 쓰레드에서는 읽고 쓰는데 문제가 없지만 2개 이상의 쓰레드가 bytesp를 이용할 경우 둘다 같은 장소에 바이트수를 저장하므로 한 쓰레드가 다른 한쪽의 값을 덮어 씌우는 결과가 발생.. Q2. 동적 메모리 할당의 단점은? A. 메인 쓰레드가 명시적으로 '해제' 해주지 않으면 메모리 leak 이 발생한다. Q3. 다른 대안은? A. 생성자 쓰레드 (create할때 생성된 스레드)가 한 공간을 별도로..
· LINUX/Linux
상황 구문 (명령모드에서) 한 줄 복사: yy 한 줄 삭제: dd 붙여넣기 : -p N줄 복사나 삭제는 nyy ndd ex) 3줄 복사 -> 3yy 졸라 쉽누.. 이렇게 하나씩 단축키를 늘려가는그야!
· LINUX/Linux
[하드링크] 원본 파일과 연동되는 또 하나의 원본파일 inode 구조체에서 Link Count값 증가 Link Count가 0이되면 OS가 Inode와 할당된 메모리 공간을 해제한다. 하드 링크를 생성 할 경우 원본 파일과 하드 링크간의 Inode값은 동일하고 Directory Entry 항목만 추가될 뿐이다. [심볼릭 링크] 원본 파일의 경로명 정보를 갖는 링크파일이다. 비유하자면 바탕화면의 바로가기! 심볼릭 링크를 연다는 것은 OS가 Inode값 참조하여 아! 이색기 원본 요기잉네?! 하고 원본 파일을 여는것과 같은것이다. 심볼릭 링크는 Inode의 Link Count값을 증가시키지 않는다. 또 그 자체로도 별도의 Inode 값을 가진다. ※ 바로가기같은 개념이기 때문에 원본파일이 지워지면 심볼릭 링..
· 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 구조체의 정보를 아라보자...
· LINUX/Linux
[기본 지식] 원래 유닉스 or 리눅스 시스템 상에서는 쉘에서 파일의 '경로명'을 모두 입력해줘야 프로그램이 실행된다. 하지만 흔히 사용하는 프로그램 도구들 (ex. vi Editor, vim.. env 등등)은 vi , vim , env만 쳐도 실행 되는데 그 이유가 실행 파일이 주어지면 쉘은 'PATH' 환경변수에 있는 디렉토리에서 실행파일을 알아서 찾아준다. 이 때 경로명들을 콜론(:)으로 구분해서 가지고 있다. ex) /usr/bin:/etc:/usr/local/bin: (중략) 이러한 경로 목록을 검색 경로(Search Path) 라고 한다. :콜론 왼쪽에 있는 것 부터 순차적으로 찾아나간다. 고로 "따로 경로명을 제시 하지 않은" 실행 파일은 PATH에 등록된 디렉토리에서 먼저 찾아보고 PAT..
M_Falcon
'LINUX' 카테고리의 글 목록 (4 Page)