지역변수
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명령어를 사용하면 위와같이 필요한 헤더파일을 찾을수 있다.
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
WINSCP -SFTP 및 FTP 클라이언트 프로그램 (0) | 2016.04.02 |
---|---|
20160401_장진웅_업무일지_로봇제어_터미널2 (1) | 2016.04.01 |
라즈베리파이 메모리 주소 고정 영구적용 방법 (0) | 2016.04.01 |
2016_04_01_업무일지_노태경 (0) | 2016.04.01 |
20160331_조재찬_업무일지_리눅스 터미널과 지역변수 (0) | 2016.03.31 |
20160330_조재찬_업무일지_리눅스 터미널 및 C언어 (0) | 2016.03.31 |
20160329_조재찬_업무일지_네트워크 및 C기초 (0) | 2016.03.31 |
2016-03-30.강정수.환경변수.리눅스명령어심화 (1) | 2016.03.31 |