после перенаправлений стандартный потоков в самом конце в теле главноой функции не работает стандартный вывод. Как его настроить и почему он не работает? | Код | /* Написать программу, создающую и заполняющую текстовый файл. Информацию этого текстового файла через межпроцессный канал передать в параллельный процесс. В нем после каждого символа тек-ста вписать в файл порядковый номер и передать через межпроцесс-ный канал в параллельный процесс, где разделить каждый символ со своим номером пробелом. Из текущего процесса переслать получен-ную информацию в исходный процесс и там вывести на печать. Пре-дусмотреть возможность прерывания от клавиатуры
*/ #include <stdio.h> #include <signal.h> #include <setjmp.h> #include <unistd.h> #include <sys/types.h>
jmp_buf NZ;
char* name1; char* name2;
void Interrupt() {
signal(SIGINT, Interrupt); printf("prerivanie!\n");
siglongjmp(NZ, 1); }
int main() { int k=0,l=0; int iProc[2], iProc1[2], iProc2[2]; int iSost, iSost1; FILE* file1; char ch, bc; signal(SIGINT, Interrupt); sigsetjmp(NZ, 1); file1=fopen("labka","w+"); while( k<2){ ch=getc(stdin); if(ch=='\n') k++; fputc(ch,file1); } sigsetjmp(NZ, 1); pipe(iProc);
if(fork()==0) { printf("sin1\n"); rewind(file1); dup2(1,prn); close(1); close(iProc[0]); dup2(iProc[1], 1); close(iProc[1]); while(!feof(file1)){ bc=getc(file1); putc(bc,stdout); } exit(0); }
else { printf("otez1\n"); wait(&iSost); pipe(iProc1);
if(fork()==0) { printf("sin2\n"); close(iProc[1]); close(1); close(0); dup2(iProc[0],0); close(iProc[0]); close(iProc1[0]); dup2(iProc1[1], 1); close(iProc1[1]); while(!feof(stdin)){ bc=getc(stdin); if(bc=='\n') { printf("%c",'\n'); continue;} if(bc==EOF) break; l++; printf("%c%d",bc,l); } dup2(1,iProc1[1]); exit(0); } else { printf("otez2\n"); close(iProc1[1]); close(0); dup2(iProc1[0],0); pipe(iProc2); close(iProc2[0]); dup2(iProc2[1],1); close(iProc2[1]); while(!feof(stdin)){ scanf("%c%d",&ch,&tt); printf("%c%d",ch,tt); } } } // !!!!!!!! не работает printf !!!!!!!!!!!!!! printf("privet"); return 0;
}
|
M MAKCim | Пользуйтесь тегом код! | Это сообщение отредактировал(а) MAKCim - 5.6.2007, 14:22
|