본문 바로가기
반응형

분류 전체보기145

C057_execve함수 설명 리눅스의 모든 것이 파일로 이루어져 있습니다. 저희들이 사용하는 shell 명령어도 어떻게 보면 파일에 접근을 하여 실행이 됩니다. PATH 환경 변수에 접근을 하여 해당 명령어를 실행할 수 있는 경로를 찾아서 shell 명령어를 실행해 줍니다. 예를 들어 ls 명령어를 예를 한번 들어보도록 하겠습니다. whereis ls "whereis ls"명령어를 통해 'ls'명령어가 어디서 실행이 되는지 알 수 있습니다. 'ls'명령어는 '/usr/bin/ls'에서 실행되는 것을 확인할 수 있습니다. 이렇게 뜬금없이 서론이 굉장히 길었습니다. 이제 execve함수에 대해 살펴보도록 하겠습니다. execve exec에 대해 먼저 알아야 할 필요가 있습니다. exec는 입력된 파일의 경로에서 특정 명령어를 실행한 결.. 2024. 1. 15.
C056_C언어에 환경 변수 사용하기 c언어 코드 내부에서 환경 변수를 사용해 보도록 하겠습니다. 리눅스에서 아래의 명령어를 사용하시면 환경 변수를 보실 수 있습니다. export c언어 코드 내부에서 한 번 읽어보도록 하겠습니다. #include int main(int argc, char *argv[], char *envp[]) { int i; i = -1; printf("%s here\n", envp[0]); while (envp[++i] != NULL) printf("%s\n", envp[i]); return (0); } envp가 환경변수의 문자열 배열을 가지고 있습니다. 이번에는 출력 예제는 따로 없습니다. 한번 실행해 보시면 좋을 것 같습니다. 고생하셨습니다. 2024. 1. 14.
C055_pipe 함수 사용하기 시작하기에 앞서서 fork에 대해 아직은 잘 모르시는 분들은 아래의 링크를 참고해 주시길 바랍니다. https://hig0617.tistory.com/134 파이프는 2가지로 나뉩니다. '이름 없는 파이프', '이름 있는 파이프' 이렇게 2가지로 나뉘게 되는데, 오늘은 '이름 없는 파이프'에 대해 중점적으로 알아보는 시간을 가지도록 하겠습니다. 간단하게 '이름 없는 파이프'와 '이름 있는 파이프'에 대해 알아보도록 하겠습니다. 이름 없는 파이프(PIPE) 이름 없는 파이프는 부모와 자식 프로세스 간에 통신을 할 수 있게 해 줍니다. 다만 한 방향으로 진행이 됩니다. '부모->자식', 혹은 '자식->부모'로 둘 중에 한 방향으로만 진행이 가능합니다. 이름 있는 파이프(FIFO) 이름 있는 파이프는 독립적인.. 2024. 1. 13.
C054_open 함수 사용하기 시작에 앞서서 파일 디스크립터에 대해 알아야 할 필요가 있습니다. 파일 디스크립터 유닉스 시스템에서 사용되는 개념입니다. 프로세스가 파일들을 접근할 때에 번호가 필요한데 이를 파일 디스크립터라 부릅니다. 기본적으로 할당되는 파일 디스크립터가 총 3가지 있습니다. 0 : 표준 입력(Standard Input) 1 : 표준 출력(Standard Output) 2 : 표준 에러(Standard Error) open함수는 파일 디스크립터를 만드는 함수라고 생각하면 좋을 것 같습니다. open #include intopen(const char *FILENAME, int FLAGS, mode_t MODE); FILENAME은 접근하고자 하는 파일 이름입니다. FLAGS는 어떠한 목적으로 접근할지를 선택하게 해 줍니.. 2024. 1. 12.
반응형