반응형

CS(computer science) 32

[linux 뽀개기] - SHLVL - 환경변수 (env)

[linux 뽀개기] 환경변수란, 터미널에서 실행환경에서 사용 중인 변수이다. export, unset 등과 같은 명령어를 통해서 변경이 가능하며, 오늘은 이중에서 SHLVL에 대해서 알아보고자 한다. 1. SHLVL 터미널 내에 동작 중인 쉘의 깊이, 레벨. 환경변수에 있는 값인데 unset으로 삭제된 경우 예외처리가 까다롭다… 방법: getenv → atoi로 숫자 +1 → itoa → setenv 모든 구간에서 오류처리. 다음은 zsh 명령어를 3번 입력하고 난 후의 결과이다. unset SHLVL 를 입력하면, 환경변수 SHLVL가 사라지는데 env 입력해보면 다시, SHLVL = 1 로 좀 더 하위 위치의 env에 새로 생긴 것이 보인다. 결과 값은 이렇다. 다음 시간에는 환경 변수에 대해 알아..

[linux 뽀개기] - cd 명령어 구현하기

0. cd 명령어란? change directory라는 명령어의 줄임말로, 터미널에서 디렉토리를 오갈 때 사용하는 명령어이다. 1. cd 명령어 형태 총 7가지로 정리했다. cd [ 디렉토리 경로] cd [relative_path] : 상대 경로 cd [absolute_path] : 절대 경로 cd . 현재 디렉토리로 이동 cd .. 한 단계 상위 디렉토리 cd / 최상위 디렉토리로 이동 cd $(변수명) 변수에 저장된 경로로 이동 (파싱 과정에서 $(변수명) 파싱 이후에는 맨 위와 동일하게 처리 되므로 문제 없다) cd cd $(HOME) 사용자 홈 디렉토리로 이동 cd - 이전 경로로 이동 * cd ~ 같은 명령어의 경우, symbolic path라고 해서 절대 경로, 상대 경로 말고 이외의 처리인데..

[linux 뽀개기] - pwd - 명령어 구현하기

1. pwd: current working directory를 알려주는 쉘 명령어. 2. getcwd 함수 ```#include char *getcwd(char *buf, size_t size); The getcwd() function copies an absolute pathname of the current working directory to the array pointed to by buf, which is of length size. pwd는 getcwd 함수를 사용해서 구현할 수 있다. 이 함수는 current working directory의 절대 경로를 인자로 받은 buf에 복사한다. (buf는 size 길이 만큼의 버퍼이다.) 반환값이 char *인 이유는, buf , size가 0인 경..

[linux 뽀개기] - perror, strerror - 명령 실행 오류 처리하기

1. perror #include void perror(const char *string); perror() 함수는 오류 메세지를 stderr로 출력한다. string이 NULL이 아니고 널 문자를 가리키지 않는 경우, string에서 지정된 스트링은 표준 오류 스트림으로 출력되고 콜론과 간격이 이어진다. errno의 값과 연관된 메세지가 출력된 다음 줄 바꾸기 문자가 이어진다. 정확한 결과를 도출하려면, 라이브러리 함수가 오류를 리턴한 다음 바로 perror() 함수가 호출되어야 한다. 그렇지 않으면 후속 호출은 errno 값을 변경할 수 있다. 리턴값 리턴값이 없다. 사용예시 #include #include int main(void) { FILE *fh; if ((fh = fopen("mylib/my..

[linux 뽀개기] - tcgetattr - 터미널 정보를 저장하는 함수 , ECHOCTL

[담고 있는 내용] 1. tcgetattr 함수란 2. 함수가 저장하는 terminos 구조체란 3. terminos 구조체 내의 flag 중에서도 c_lflag 4. c_lflag 옵션중에서도 ECHOCTL 1. tcrgetattr 함수 NAME tcgetattr - get the parameters associated with the terminal SYNOPSIS #include int tcgetattr(int fildes, struct termios *termios_p); DESCRIPTION The tcgetattr() function shall get the parameters associated with the terminal referred to by fildes and store them..

makefile 오류 - 'linker' input unused [-Werror,-Wunused-command-line-argument]

cc -Wall -Wextra -Werror -c monitoring.o routine_utils.o utils2.o init_routines.o philosopher.o utils1.o -o philo clang: error: monitoring.o: 'linker' input unused [-Werror,-Wunused-command-line-argument] clang: error: routine_utils.o: 'linker' input unused [-Werror,-Wunused-command-line-argument] clang: error: utils2.o: 'linker' input unused [-Werror,-Wunused-command-line-argument] clang: error..

컴퓨터네트워크 - 애플케이션 계층 (간단 맛보기)

1. 애플리케이션이란 - 컴퓨터 네트워크 계층 측면에서 보면 가장 상위에 있는 계층이다. 인터넷 애플리케이션에는 1970년대에 등장했던 텍스트 전자메일, 컴퓨터로의 원격 접속 등을 포함해서 1990년대 중반에 나온 월드와이드앱(www : 웹서핑, 검색, 전자상거래 등을 포괄한다. ), 그리고 요즘에는 유튜브처럼 사용자가 만든 비디오 분배, 넷플릭스 같은 온디맨드 영화, 또는 구글 행아웃 같은 비디오 콘퍼런싱, 마지막으로 인스타그램, 페이스북과 같은 소설 네트워킹 애플리케이션도 이 계층에 속한다. 2. 애플리케이션 개발. 네트워크 애플리케이션 개발의 중심은 다른 위치의 '종단 시스템'에서 동작하고 네트워크를 통해 서로 통신하는 프로그램을 작성하는 것이다. 예를 들어 웹 애플리케이션에는 서로 통신하는 서버와..

데이터의 표현과 컴퓨터 연산

이번 시간에는 컴퓨터가 어떻게 데이터를 저장하고 처리하는 지 알아볼 것이다. 3.2. 정수의 표현 컴퓨터의 가장 근본이 되는 기능은 수치의 계산이라고 할 수 있다. 이걸 수행하는 가장 핵심적인 장치가 바로 CPU 안에 있는 ALU라고 하는 하드웨어이다. 컴퓨터는 2진수의 체계로 수를 저장하고 표현한다. 모두가 잘 아는 이진수의 체계인데 한번 더 짚고 넘어가자면, 소수점 이하의 이진수는 2^(-1), 2^(-2) .. 를 의미한다. ex) 0.101 = 0.5 + 0.125 = 0.625 컴퓨터는 양수 뿐만 아니라 음수도 처리하기 때문에 음수를 표현하는 방법이 필요하다. 이를 수행하는 데에는 여러가지 방법이 있는데, 공통적인 부분은 2진수의 가장 왼쪽 비트가 부호 비트로 사용된다는 점이다. 맨 왼쪽 비트,..

linux - pthread_create 매뉴얼 뜯어보기[pthread]

https://man7.org/linux/man-pages/man3/pthread_create.3.html 출처 : 리눅스 매뉴얼 페이지 pthread_create(3) - Linux manual page pthread_create(3) — Linux manual page PTHREAD_CREATE(3) Linux Programmer's Manual PTHREAD_CREATE(3) NAME top pthread_create - create a new thread SYNOPSIS top #include int pthread_create(pthread_t *restrict thread, const pthread_a man7.org 1. pthread_create : create a new thread. #i..

ft_print 구현해보기(printf, 가변인자 이해하기)

printf를 구현하면서 느낀 중요한 것들을 정리하려고 한다. Mandatory part * 주관적인 기준이다. 1. 가변인자 va_list 를 사용할 수 있는가? 2. printf의 원리를 아는가? 3. putstr, putnbr, putchar 를 올바르게 구현할 줄 아는가? #hint 1. #include 부터 시작하자. 2.(bonus part에서 진행하는 진짜 format : 정확도, padding 등에 대한 건 나중에 정리하려고 한다) %이후 format이 있다. 두번째 인자부터는 format에 해당하는 진짜 변수 3. int, unsigned int, unsigned long long 변수를 잘 이해했으며 이를 write함수를 이용해 출력할 수 있는가? (특히 숫자 출력시 재귀 함수 이용, ..

728x90
728x90