0
유닉스에서 리디렉션과 파이프를 시뮬레이션하려고합니다 (<,>, >>, |). 나는 이미 그들 모두를 프로그램 할 수 있지만 추가 (>>)를 관리한다. >>가 cmd 문자열에 있는지 확인하는 코드의 평화가 있습니다. 이 O_WRONLY와 O_APPEND와 발생하지 왜 문제 프로그래밍 UNIX 리디렉션
cat: write error: Bad file descriptor
사람이 알고 있나요 : 내가 dup2가를 호출 할 때
if(!strcmp(cmd[i], ">>")){
aux[i] = NULL;
fdW = open(cmd[i+1], O_APPEND);
dup2(fdW, STDOUT_FILENO);
close(fdW);
}
그러나() 열려있는 파일 수익률이 오류를 STDOUT 리디렉션합니다.
fdW -1입니까? 두 번째 인수가'O_WRONLY | O_APPEND'이어야합니까? –
은'>>'을 에뮬레이트 할 수 있습니다. 두 번째 인수는'O_CREAT | O_WRONLY | O_APPEND' 일 수 있습니다. – jfs
@ J.F.Sebastian 네, 이제 제 문제가 무엇인지 봅니다. 나는 내가 O_APPEND를 사용한다면 O_CREAT를 사용해야한다고 생각하지 않았다. 대답 해줘서 고마워. –