IT

" " -> const char *
스택 영역 = 코드 or 스택 영역

code  R
data  R/W
bss   R/W
heap  R/W
stack R/W

char a[] = "하이\n";
char *b = "하이~\n";

*a='1';
*b='1';   <---- 세그먼테이션 오류
                (코드영역을 수정하려고 했기때문에)
printf(const char *)
" " 써도 되고, 문자열의 주소를 넘겨도 된다.


File *fp=fopen("a.txt","r")
OS상에서 a.txt의 메모리 공간을 만들어서
메모리 주소를 File *로 알려준다.

fclose(fp)
OS상에서 어느 파일을 닫아야 할지 모르기 때문에
파일의 메모리 주소를 인자로 받아서 해당 주소의 파일을 닫는다.

printf() -> stdout 표준 출력

0 : stdin   --> 키보드
1 : stdout  --> 화면
2 : stderr  --> 화면

리다이렉션

명령어 > 파일명
ex) ls -al > a.test
명령어 실행 결과를 파일로 출력한다.

명령어 >> 파일명
ex) ls -al >> a.test
명령어 실행 결과를 파일에 추가를 한다.


gcc > g.test
결과) 파일에 기록되지 않는다.

이유) > 기본값은 1> 와 같은데( gcc 1> g.test ),
gcc 에러는 stderr로 출력하기 때문에 기록되지 않는다.
fix) gcc 2> g.test

 

'소프트웨어 > C언어' 카테고리의 다른 글

문자열 메모리 영역, 고수준 입출력, 리다이렉션  (0) 2011.07.28
더블 포인터  (0) 2011.07.28
Heap, Stack 구조  (0) 2011.07.18
volatile  (0) 2011.06.30
구조체_컴파일러최적화  (0) 2011.06.21
Return  (0) 2011.06.21
Posted by sinpk Trackback 0 Comment 0

댓글을 달아 주세요