본문 바로가기
SMALL

Language/C언어60

C058_헤더 파일 만들기 헤더 파일을 만들어 보도록 하겠습니다. 헤더 파일은 왜 필요한 것일까요??? 예를 들어 저희가 코딩을 하는데에 있어 많은 헤더와 함수 선언이 필요하다고 가정해 봅시다. 그렇게 되면 코딩 시작부터 굉장히 코드가 길어지겠죠??? #include #include #include #include #include #include ... 위의 코드와 같이 main문 시작하기도 전에 굉장히 많은 코드를 작성하게 됩니다. 이를 한 줄로 줄이기 위해서 헤더 파일을 작성하는 것입니다. 헤더 파일 #ifndef MINE_H 현재의 코드에 mine.h가 선언이 되어있지 않다면 '#endif'까지 선언을 해줍니다. # define MINE_H MINE_H를 만듭니다. # include # include # include # i.. 2024. 1. 17.
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.
LIST