[공부]write 의 stdout 출력 에 대한 궁금증
글쓴이: BarracuTa / 작성시간: 금, 2005/07/01 - 6:15오후
안녕하세요 이제 막 입문 과정을 밟고 있는 새내기 입니다..
write 의 stdout 출력에 관한 내용을 해보던 중 의문점이 생겨 이렇게 글 올립니다.
너무 초보적 원초적 (?) 질문 인것 같아 잠시 망설이고 여러 방면 검색을 해보았습니다.(이곳에서 wirte and stdout 등 으로 검색해도 안나오던군요 ㅜㅜ)
결국 이곳에 올리게 되었습니다.
좋은 가르침 부탁드립니다. 감사합니다.
그럼 ..
아래 코드에서 char 는 제대로 출력되지만 int 형은 출력 되지 않는 이유를 모르겠습니다. 왜그런건가요???
오늘 비가 많이 왔는데 여름철 건강 주의하세요 ..
그럼 전 답변을 기다리며 .... ^^;
1 #include <unistd.h> 2 int main() 3 { 4 int n; 5 char c='a'; 6 for(n=0;n<3;n++) 7 { 8 write(1,&n,sizeof(int)); 9 write(1,&c,sizeof(char)); 10 } 11 }
Forums:
분명히 출력은 되었으나 사람눈으로 확인이 불가능 한것입니다.아래 코드
분명히 출력은 되었으나 사람눈으로 확인이 불가능 한것입니다.
아래 코드를 테스트 삼아서 실행해 보심이...
그리고, ASCII code표를 참고 하셔야 할듯 하군요.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
추신_솔직히 이 code 만으로 이해를 하기엔 좀 어려 울수도 있으나 생각을 해보시길...
그리고 다시 질문을 하시길 바랍니다.
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
아 드디어 들어 왔습니다.많은 힌트 감사 합니다.int 형은 4바
아 드디어 들어 왔습니다.
많은 힌트 감사 합니다.
int 형은 4바이트인데 거기에 들어간 각바이트단위 출력시 당연 사용자눈에 안보인다는 그말씀이시죠..
답변달라고 kldp 들어오는데 계속 안들어와지더군요 이제야 되니 다행입니다..
다시한번 감사드립니다.
저희 업소를 방문해 주셔서 감사합니다.
제가 말씀을 드리고 싶은 부분이랑은 좀 다르게 이해를 하신듯 하네요.
제가 말씀을 드리고 싶은 부분이랑은 좀 다르게 이해를 하신듯 하네요.
int 형의 값이 4 bytes라서 출력이 안된게 아니라...
출력한값(0x00 0x01 0x02 0x03)값들이 화면에 표현 할 수 없는 값들이기 때문입니다.
n 값을 for()문에서 초기화 할 때 0x30 0x41 0x61 중에 선택 하시면은 숫자나 영문 대소문자가 찍히는 것을 볼 수가 있습니다.
그러나 앞의 세 바이트는 여전히 0x00이기 때문에 마지막 바이트만 출력이 됩니다.
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
출력을 od와 같은 dump filter에 넣으면 좀 더 확실히 알 수
출력을 od와 같은 dump filter에 넣으면 좀 더 확실히 알 수 있을 것 같습니다:
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://cinsk.github.io/cfaqs/
[code:1]#include <unistd.h>#defi
그래서 write를 쓰고자 할때, 버퍼에 포맷팅해주는 snprintf()시리즈를 사용하게 되지요.
그냥 심심해서 ....
그저 심심해서 생각나는 김에 해봤습니다.
숫자의 경우만 그것도 한자리 숫자의 경우 ;;
댓글 달기