1
c에서 셸을 구현하고 명령 출력을 파일로 리디렉션하는 데 어려움을 겪고 있습니다. 내가 출력을 파일로 보낼 때 , 그것을 작동하는 것 같다하지만 파일이 열리지 않습니다와 나는 LS를 실행하면 다음과 같은 저를 보여줍니다 -l :명령 줄에서 C의 텍스트 파일로 리디렉션
---------x 1 warp staff 441 Nov 4 20:15 output.txt
이 내 코드의 일부입니다
pid = fork();
if(pid == 0)
{ /* child process */
if(redirFlag)
{
int fdRedir = open(redirectName, O_WRONLY | O_CREAT);
if(fdRedir < 0){
perror("Can't Open");
exit(1);
}
if(dup2(fdRedir, STDOUT_FILENO) == -1){
perror("dup2 failed");
exit(1);
}
}
execvp(supplement[0], supplement);
/* return only when exec fails */
perror("exec failed");
exit(-1);
1 :의 엄격, 프로토 타입 ['개방()'(http://pubs.opengroup.org/onlinepubs/9699919799/functions/ 새 파일을 만들 때 파일 권한을 표시하기 위해 시도 open_html) 은'int open (const char * path, int oflag, ...);'이지만, 그물 결과는 여러분이 말하는 것처럼 꽤 많이 있습니다 :'O_CREAT'를 지정하면, 너무. 이것이 없다면 어떤 값이 모드로 취급 될지 불확정하다. 결과에서 대답이 '1'인 것 같습니다. –
@JonathanLeffler 더 엄격한 프로토 타입을 제공해 주셔서 감사합니다. 답변을 업데이트했습니다. –