본문 바로가기
코스웨어/16년 스마트컨트롤러

20160331_노유찬_환경변수_터미널

by 알 수 없는 사용자 2016. 4. 1.
728x90
반응형

지역변수

5번줄의 num은 유통기한이 main함수가 끝나는 시점이고 11번줄의 num은 유통기한이 11~14번줄이다. 그래서 출력 값으로 결과를 확인해 보면

if문에서의 값과 main함수 내의 값이 다르고 주소도 다르다는 것을 확인할 수 있다.

주소 값 고정하기

도스창에서 컴파일을 돌리던 시절 주소 값의 확인을 위해 유동주소대신 고정주소로 고치는 명령어를 기억할 것이다. cl    main.c      /link    /DYNAMICBASE:NO 바로 이명령어 인대      vi환경에서도 적용가능하다. 다음 명령을 사용하면 된다.

 

 

주소가 고정 되었는지 확인해보자  

 터미널

 

참고

 

터미널 접근 명령어는 ls -al /dev/tty* 이다. 여기서 tty = teletype의 약자

dev는 장치들을 모아놓은 장치 디렉토리이다.

※Linux와 Unix는 장치를 하나의 파일로 본다

crw-rw-rw- -> 이상하다 우리는 d로 시작하면 디렉토리, -로시작하면 파일로 구분하는게 다였는데 c로 시작을한다.

c : char device의 약자로 우리가 전에 배운 stream의 개념이다 즉 정해지지 않은 가변데이터라고 보면 되겠다.

한가지 더 b : block device로 c와 반대로 정해진 양의 데이터 이다.

명령어 소개

cd usr/include : 헤더파일이 모여있는 디렉토리이다.

우리가 흔히 사용하는 stdio.h도 여기있다.

터미널 설정에 사용할 헤더파일을 하나 더 보도록하자

/usr/include/asm-generic안에 들어있는 것을 확인가능하다.

구조체 termios등 상세하게 코딩된 것을 확인할 수 있다.

 

터미널 프로그래밍의 기법

①Canonical : Enter키를 누르기 전까지 수정이 가능 ex)vi 편집기의 편집모드

 

 

 

②Non-Canonical : 명령모드처럼 입력과 동시에 바로반응

③Asynchronous(비동기) : 특정조건이 만족될 때까지 정지해 있는상태

④Multi-plexing : select() 함수 사용, 인터럽트방식을 피해서 짤수있음 (상당히 유용)

 

Manual 명령어 사용

 man ls 의 실행 결과

 ls는 명령어이고 왼쪽 최상단의 LS(1) 오른쪽 최상단의 LS(1)에 1은 1챕터를 의미하고 1챕터에는 명령어들이 모여있다.

man printf 는 printf라는 명령어 챕터로 넘어가는대 우리가 아는 함수는 3챕터에 존재한다.

 

그래서 man 챕터 명령어or함수 -> man 3 printf :3챕터의 printf에 대해 보여줘

※만약 함수 사용에 필요한 헤더파일을 찾을때 manual명령어를 사용하면 위와같이   필요한 헤더파일을 찾을수 있다.

728x90