
오제이튜브 - 리눅스 기반 C언어 https://www.youtube.com/watch?v=mo_AQ1xDCFs&list=PLz--ENLG_8TMdMJIwyqDIpcEOysvNoonf이 강의를 통해 배운 내용을 정리 해 볼 예정이다
root와 사용자 계정 전환
리눅스 디렉토리 명령어 디렉토리 이동(cd) 디렉토리/파일 확인(ls) 디렉토리 삭제(rmdir) 디렉토리 생성(mkdir) 디렉토리 절대 경로 출력(pwd) 디렉토리/파일 복사(cp) 디렉토리/파일 이동(mv)

vim : 에디터gcc : 컴파일러프로그램 다운받는 곳명령모드 (command mode)vi 명령어를 통해 vi를 시작할 경우 실행되는 모드. 방향키를 통해 커서를 이동할 수 있다.입력모드 (insert mode)명령 모드에서 i 또는 a 키를 눌러 입력 모드로 넘어갈
리눅스 규칙 : 운영체제가 동작하다가 ./실행파일 -> 가장 먼저 main 함수부터 찾음stdio.h 라는 헤더파일 안에 정의 되어 있는 함수(printf)를 가져다가 쓰기 위함

변수(Variable)
GDB : 디버거GDB를 사용하는 이유는 크로스 컴파일하는 경우에 필요하기 때문이다.임베디드 환경에서 주로 크로스 컴파일을 사용해서 임베디드 리눅스환경에 크로스 gdb만 지원되는 경우가 제법 많다.B CPU (임베디드/ARM) : 컴파일러 X
: 연산자
0 : 전구 꺼짐1 : 전구 켜짐a라는 주소 공간:0x32 = 0011 0010: a에 무슨 값이 있던 a값은 건드리지 않고 전구 on: 전구 off
:if문, switch문
문자열 : char 연속된 집합 null 값을 만나면 끝낸다. \-> null(\\0)을 넣지 않으면 쓰레기값 출력 가능성이 있어서 꼭 넣어주기

괄호 안에 0이면 멈춤, 0이 아니면 무한 루프결과값은결과값은결과값은조건이 거짓이여도 한번은 반드시 실행시켜야 할 때 사용함하지만 잘 안 씀.사용 권장하지 않지만 가끔씩 쓸 때가 있음

함수 선언 함수명은 메모리에서 명령어가 시작되는 곳을 가르킨다. 메모리에 기계명령어가 저장되어있다. 예를 들면 위와 같이 함수를 선언하고 위와 같이 함수를 사용할 수 있다. 함수 사용 예시 반환형 함수는 무조건 한개의 반환형을 가지고, 선언할때에는 그 자료형을

\- 하나씩 변수로 지정해줘도 되지만, 배열로 저장하면 주소가 나란히 저장됨.\- 간격은 자료형의 크기와 같음메모리 공간에는 기계어가 쓰여져있음.(명령어인지, 변수인지 - 메모리는 알 수가 없음)포인터 : 메모리 값을 담아두는 그릇ex) 1) int a -> 0X123

문자열을 카피하는 함수이다.const char\* 타입의 문자열을 받아서 해당 문자열의 길이를 반환하는 함수s1 = abcd, s2 = abcs1 = abc, s2 = abcs1 = abcd, s2 = abcdf
: 여러 자료형을 가진 변수들을 하나로 묶어 자료형으로 사용할 수 있도록 정의하는 것= 새로운 type을 만들어 내는 것'struct' 뒤에 구조체의 이름을 정해주고, 중괄호 블럭 안에 필요한 변수들을 선언하여 사용한다.먼저, 구조체를 사용하기 전에 선언을 먼저 해줘야

stack, heap, malloc, calloc, realloc, free,...

자료 저장할 때 많이 사용됨큐, 스택,..ex) 네트워크 상황에서 패킷이 엄청오는데 패킷이 도착하면 그것을 받고 그 명령어에 따라서 무언가 수행을 한다면 오는 패킷을 받아서 전부 큐에 넣는다.근데 이 큐를 링크드 리스트 형식으로 보통 구현한다.출력결과(큐)

gcc (컴파일러) : c언어를 어셈블리어로 번역하는 역할컴파일러 : 프로그램을 만드는 프로그램gcc 컴파일러 : 리눅스 운영체제에서 돌아가는 프로그램을 만드는 프로그램 옵션에 따라 컴파일 함링커 : 컴파일러가 만들어 낸 하나 이상의 목적파일(object 파일)을 가져
1. Makefile이란? make? 주로 컴파일관련한 행동을 한다. 컴파일 해야할 코드 갯수가 많아지면 gcc 방식으로 하나하나 입력하는 것은 매우 번거로운 일이다. 따라서 이러한 불편함을 해결하고 쉽게 컴파일하기 위해 사용하기 위한 방법이 make이다. make 명령어 make 명령어를 친 폴더에 있는 Makefile을 찾고 그 Makefile에 ...

파일 입출력이란 파일에 대한 입력과 출력을 의미한다. 파일에 대한 입력이란 디스크상의 특정 위치에 수록되어 있는 자료를 읽어 들여 기억공간에 수록하는 절차라고 할 수 있고, 파일에 대한 출력이란 기억공간에 있는 자료를 디스크상의 특정 위치에 수록하는 절차라고 할 수 있

A가 신호를 보내면 B가 알아들으면 됨.단방향, 양방향, ...신호에 대한 의미를 약속한 것이 프로토콜이다.통신하기 위한 물리적인 경로이 필요하다(랜선, 와이파이,..)A - BA가 B에게 통신신호(패킷)을 보냈는데 B에게 잘 받았는지 확인받는 절차까지 포함한 프로토콜

채팅프로그램 구조 서버에 접속한 user 중 한 명이 뭔가를 말하면 서버에 접속한 나머지 user들에게 전달해주는 채팅 프로그램을 만들것이다 저번 코드 복기(문제점) server 문제점 user1이 접속하면 user1의 패킷만 받고 처리하고 있음. user2가 들어오면
1. 채팅프로그램 구조 서버에 접속한 user 중 한 명이 뭔가를 말하면 서버에 접속한 나머지 user들에게 전달해주는 채팅 프로그램을 만들것이다 2. 저번 코드 복기(문제점) server 문제점 user1이 접속하면 user1의 패킷만 받고 처리하고 있음. user2