Programming,  컴퓨터와 인터넷

[C] 표준 입력 버퍼를 채우는 방법

[ CnUnix ] in KIDS
글 쓴 이(By): tubby (터비)
날 짜 (Date): 2000년 9월 19일 화요일 오전 09시 36분 10초
제 목(Title): [질문] 표준입력버퍼를 채우는 방법

표준입력(stdin)에 임의의 스트링을 채워야 하는데…

하고자 하는 일이 표준입력으로부터 미리 내용을 읽어내고 그 내용을 수정해서 마치 표준입력으로부터 읽지 않은듯이
다시 채워넣으려고 하는 것입니다. 방법이 있다면 알려주십시오.

미리 감사드리면서….

[ CnUnix ] in KIDS
글 쓴 이(By): terzeron (microkid)
날 짜 (Date): 2000년 9월 19일 화요일 오전 10시 41분 42초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

ungetc()라는 함수가 있습니다. ungetc(ch, stdin)으로 stdin에 입력을 되돌릴 수 있습니다. 물론 순서는 잘 생각해보셔야겠죠. ^^;

다른 방법이 있는지 모르겠는데 그건 또 다른 분들께서 말씀해주시겠죠, 뭐.

[ CnUnix ] in KIDS
글 쓴 이(By): tubby (터비)
날 짜 (Date): 2000년 9월 19일 화요일 오전 11시 31분 26초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

일단 답변에 감사드립니다. 하지만 ungetch 의 경우 커서의 위치만 뒤로 되돌리는 것이더군요. 제 경우는 내용을 바꾸어야 하는 문제가 있답니다. 그럼.

[ CnUnix ] in KIDS
글 쓴 이(By): guest (guest) <211.113.179.139>
날 짜 (Date): 2000년 9월 19일 화요일 오후 02시 00분 10초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

저는 지나가는 과객인데여, 고치신 새로운 내용을 ungetch 의 아규먼트로 넣으시는 거니까, 그냥 하면 되지 않나요? 다만, 내용의 순서가 stack식이라는 것만, 생각하고 넣으면 되지 않을까여?

[ CnUnix ] in KIDS
글 쓴 이(By): burp (spider)
날 짜 (Date): 2000년 9월 19일 화요일 오후 02시 15분 01초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

putback(ifstream의 멤버함수)가 도움이 될 지 모르겠네요.

[ CnUnix ] in KIDS
글 쓴 이(By): cdpark (박종대)
날 짜 (Date): 2000년 9월 19일 화요일 오후 03시 35분 50초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

ungetc 함수는 한 글자를 되돌리는 것에 대해서만 동작을 보장합니다. 그리고, 그 되돌리는 것도 stream으로 돌리는 게 아니라 그냥 내부 버퍼로 보내는 거죠. (다음의 getc 함수가 읽을 수 있게..)

그냥 myungetc 함수를 만드시고, mygetc는 되돌려진 글자(나 문자열)가 있으면 여기서, 없으면 그냥 getc를 부르도록 coding하는 건 어떨까요? (대부분 이렇게 해결합니다.)


박..

[ CnUnix ] in KIDS
글 쓴 이(By): ash ( [@_@])
날 짜 (Date): 2000년 9월 19일 화요일 오후 04시 40분 43초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

하누기 형. 도대체 무슨 일을 하길래 이런 삽질을 하십니까?
……………………………………………………………
웬만하면 표준입력의 내용을 모두 읽어와서 고칠 건 고치고 표준 출력으로 보내는 것이 나을 것 같은데요.

[ CnUnix ] in KIDS
글 쓴 이(By): tubby (터비)
날 짜 (Date): 2000년 9월 19일 화요일 오후 08시 37분 46초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

보통 CGI 만들때 cgi-lib 를 사용하지만 그렇지 않은 경우도 많습니다. 저의 경우에는 간단한 경우 직접만들기도 하고요.

cgi에서 POST로 전송받은 내용은 표준입력으로부터 받아들이도록 되어있습니다. 그런데 제가 입력받을 값은 사실은 어떤 스트링이 암호화 된 결과 값입니다. 따라서 다른 일반 개발자들이 암호화에 대해 알지 못하게 하면서 그 하위단에서 암복호화 처리를 하려면 제가 새로운 입력 함수를 만드는 것은 적절하지 못합니다. 다른 개발자들이 그 CGI 함수만 써야 하니까요.

그래서 생각해 낸 것이 stdin에서 읽은 값을 복호화 한 후 복호화 된 값을 stdin에 넣으면 어떨까 생각한 것입니다. 그러면 어떤 CGI 라이브러리를 쓰든 직접만들든 상관없이 처리할 수 있으니까요. 제가 삽질 하는 이유죠…

앞에서 답변해 주신 여러 분들께 감사드립니다.

[ CnUnix ] in KIDS
글 쓴 이(By): swhan (차카게살자)
날 짜 (Date): 2000년 9월 20일 수요일 오전 05시 04분 05초
제 목(Title): Re: [질문] 표준입력버퍼를 채우는 방법

단지 그 이유라면 CGI Wrapper를 만들어 주시는게 어떨까요? Web Server가 call하는 것은 언제나 Wrapper고, 그 Wrapper가 다시 child를 call하도록요. child도 역시 완전한 CGI.

답글 남기기