Dmitry.Karpov Гость
|
Добавлено: Пт Окт 26 2001 19:32 Заголовок сообщения: Как переписать на C оператор Perl open(FLY,"| $flyprog -o $outfile "); |
|
|
Есть программа на Perl: #!/usr/bin/perl $flyprog = "/usr/local/bin/fly"; $outfile = "temp.gif"; open(FLY,"| $flyprog -o $outfile "); print FLY "new\n"; print FLY "size 256,256\n"; print FLY "fill 1,1,255,255,255\n"; print FLY "circle 128,128,180,0,0,0\n"; print FLY "fill 128,128,255,255,0\n"; print FLY "arc 128,128,120,120,0,180,0,0,0\n"; print FLY "circle 96,96,10,0,0,0\n"; print FLY "circle 160,96,10,0,0,0\n"; print FLY "fill 96,96,0,0,0\n"; print FLY "fill 160,96,0,0,0\n"; close(FLY); Как переписать на C оператор open(FLY,"| $flyprog -o $outfile "); ? Я догадываюсь, что надо сделать fork(), проверить, кто я (родитель или ребенок), потом exec(flyprog,"-o",outfile). А вот как подменить stdin? Какие маны читать? |
|
Chuk
Зарегистрирован: 16.11.2001 Сообщения: 13 Откуда: Киев
|
Добавлено: Ср Ноя 14 2001 21:00 Заголовок сообщения: Re: Как переписать на C оператор Perl open(FLY,"| $flyprog -o $outfile "); |
|
|
>>Есть программа на Perl: >> #!/usr/bin/perl >> $flyprog = "/usr/local/bin/fly"; >> $outfile = "temp.gif"; >> open(FLY,"| $flyprog -o $outfile "); >> print FLY "new" ... >> close(FLY); >>Как переписать на C оператор >> open(FLY,"| $flyprog -o $outfile "); >>? Я догадываюсь, что надо сделать fork(), проверить, кто я (родитель или ребенок), потом exec(flyprog,"-o",outfile). >>А вот как подменить stdin? Какие маны читать?
Можно трудиться над fork(),pipe(),dup(),... А можно и проще (зависит от требований задачи)- FILE *fp=NULL; char cmd[1024], *outfile="temp.gif"; sprintf(cmd,"/usr/local/bin/fly -o %s",outfile); fp=popen(cmd,"w"); fprintf(fp,"...") pclose(fp); |
|