linux 질문입니다.
글쓴이: qaz123 / 작성시간: 금, 2020/12/11 - 3:36오후
#include
#include
#include
#include
#define MAXLINE 100
int main(){
int n;
int pid1;
int pid2;
int fd[2];
char line[MAXLINE];
pipe(fd);
pid1=fork();
if (pid1==0){
printf("\nchild1 process's pid %d", getpid());
close(fd[0]);
dup2(fd[1],getchar());
close(fd[1]);
exit(0);
}
pid2=fork();
if (pid2==0){
printf("\nchild2 process's pid %d", getpid());
close(fd[1]);
while((n=read(toupper(fd[0]), line, MAXLINE))>0)
while(STDOUT_FILENO, line, n);
exit(0);
}
}
한 프로세스에서는 표준입력을 받고
다른 프로세스는 표준입력을 받은걸 소문자를 대문자로 바꿔 출력하려고 하는데요
결과값이 안나오네요..
Forums:
꼭 C언어로 해야 하나요? 이런 일은 bash가
꼭 C언어로 해야 하나요? 이런 일은 bash가 제격입니다.
꼭 C로 해야 한다면 dup2 사용법을 제대로 숙지하시길.
https://linux.die.net/man/2/dup2
getchar()는 fd를 리턴하지 않습니다.
getchar()는 fd를 리턴하지 않습니다.
아래는 manpage 설명 중 일부입니다.
----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라
제목은 질문 내용을 요약하세요.
qaz123님께.
질문 전에
https://wiki.kldp.org/wiki.php/DocbookSgml/Beginner_QA-KLDP#AEN70
한 번 읽어보심 좋아요.
kldp 에서 소스코드는 code 태그로 감싸주세요.
들여쓰기 하나 없는 코드 보시고 답변 달아주시는 분이 존경스러울 따름입니다. :)
세벌 https://sebuls.blogspot.kr/
댓글 달기