본문 바로가기
코스웨어/11년 내장형하드웨어

[내장형]이상만_Socket API, 저수준 입출력, grep / redirection명령어, TCP/IP 서론 요약

by 알 수 없는 사용자 2011. 6. 27.
728x90
반응형
1교시 Socket API 그림 정리



2~4교시 저수준 입출력

P11-9.c의 예제

결과>>

open("d1009..in", O_RDONLY)에서의

" "는 책을 포함하여 5가지 형태로 쓸수 있습니다.

1) const char *p
 
사용예제)



단점 : " "수정되지 않는 문자열이란  뜻인데 여기서 p는  코드영역 4바이트를 차지하게 됩니다
           즉 메모리의 낭비가 발생합니다

2) char p[]

사용예제)


장점 : 원하는 배열의 부분에 다른 문자를 추가로 삽입 할 수 있습니다

예) p[8] = 'p'; d에다가 p를 넣게 되어 정수가 아닌 16진수 주소로 출력하게 됩니다


<<1~2번 종합예제>>



3)#define p

사용예제)



장점 :  일괄적으로 한번에 수정 할 수 있습니다 / 메모리의 낭비가 없습니다

4)컴파일전에 gcc -Dfile=\"d1009.in\" -o p11-9 p11-9.c

사용예제)



장점 :  외부에서 컴파일시 적용 할 수 있습니다 / 메모리의 낭비가 없습니다

          \"1009.in\"서 \   \은 메타문자로 해석을 금지한다는 뜻을 가집니다

ex) #define TV 100
       -DTV = 100


이 4가지와 책에 있는 방법 포함하여 5가지 방법이 있습니다.



/* read(infd,buffer,BUFFERSIZE) 설명 */

설명)) read(읽어올 대상, 넣을 주소(위치), 한번읽어들일 최대양512)

읽어올대상은 HDD를 뜻하고 넣을주소는 메모리(Memory)를 뜻합니다

한번 읽어들일 최대양 512
30<512<513
30 = 30개만 읽어들입니다
513 = 512개만 읽고 나머지는 버립니다
    참고>>scanf와 gets는 제한이 없습니다 그래서 gets는 warning이 발생합니다!!

추가 참고
저수준 입력 방식에서는
stdin  0
stdout 1
stderr  2
을 기본적으로 차지하고 있습니다

위 소스의 infd와 buffer을 차례대로 printf로 출력해보면
stderr의 다음인 3과 4가 나오는 것을 확인 할 수 있습니다

ex) infd : 3   buffer : 4



/* 리눅스 redirection 명령어 */

-redirection (>) 명령어의 결과를 화면에 출력하지 않고 file에 결과를 보냅니다

옵션
> :  새로운 file을 만들어라 , >>(append) : 기존의 file추가하라

ls -al > a.txt.

a.txt에다 ls -al의 명령으로 나타나는 글자를 넣어줍니다

tree > a.txt

a.txt에다 root 디렉토리 정보를 넣어줍니다

여기기까지는 표준출력(1)에 해당합니다
ls -al > a.txt 은 ls -al 1> a.txt과 동일합니다

gcc > a.txt 는 error 이고 화면에 출력되지 않습니다
이것은 표준에러(2)입니다
그리고 gcc 2> a.txt와 같습니다 

redirection은 저수준 입력 방식처럼 숫자를 구별합니다(window Linux모두 해당)



/* 리눅스 grep(globally find regular-expression and print) 명령 */

 

지정된 파일내의 특정 문자나 단어를 검색하는 명령어로써 파일편집이나 특정 문자를 포함한 단어를 찾는데 매우 유용하게 사용되는 명령어입니다

사용방법 = grep[option][찾을문자][대상파일]

 
-v : 지정한 패턴과 일치하지 않는 것들을 보여줍니다
-n : 일치하는 라인의 결과와 그파일에서의 결과 라인이 몇 번재 라인인지 보여줍니다
-i : 대소문자의 구별을 하지 않습니다
-c : 일치하는 라인의 수를 보여줍니다
-r : 서브디렉토리까지 문자열을 찾습니다



5~6교시 수업






728x90