[so] Re: Windows pipes

Marius Nicolae mariusn007 at gmail.com
Sat Nov 3 09:24:21 EET 2007


Asa este, parserul o sa iti ia (in mod corect) ce era intre ghilimele
drept un singur parametru, pe care insa il retine fara ghilimele.
Atunci cand construiesti linia de comanda, daca faci pur si simplu
concatenare, din

echo 'int main() { return 0; }'

o sa obtii

echo int main() { return 0; }

si se pare ca undeva e ceva in neregula pentru ca in fisier nu o sa
ajunga acolada {

O solutie ar fi ca pe windows, atunci cand construiesti linia de
comanda pentru CreateProcess, sa pui "" in jurul fiecarui parametru,
adica sa generezi linia de comanda:

echo "int main() { return 0; }"

ceea ce o sa insemne de asemenea ca daca ai

ls -a -l

pui

ls "-a" "-l"

care nu afecteaza cu nimic executia comenzii


On Nov 3, 2007 2:58 AM, Ionut Prunache <bthorne at gmail.com> wrote:
>
>
>
> On 11/3/07, Ionut Prunache <bthorne at gmail.com> wrote:
> >
> >
> >
> > On 11/3/07, Silviu-Ionut Ganceanu < silviug at gmail.com> wrote:
> > > Ca o completare echo '{{{{{int main() {{{{{{{{{{{{{{{{{ return 0; }' |
> cat > src.cpp
> > > va rezulta in src.cpp: "main()  return 0; }" deci aparent acolada mai
> sterge
> > > caracterele pana la primu white space...
> > >
> > >
> > > On 11/3/07, Silviu-Ionut Ganceanu < silviug at gmail.com> wrote:
> > > > Salutare,
> > > >
> > > > Am dat de urmatoarea problema in lucrul cu pipe-urile pe Windows:
> pentru urmatoarea comanda
> > > >
> > > > echo 'int main() {{{{{{{{{{{{{{{{{ return 0; }' | cat > src.cpp
> > > >
> > > > src.cpp va contine "int main()  return 0; }"
> > > >
> > > > Oricat de ciudat ar parea, se pare ca '{' nu se transmite prin pipe
> (singurul caracter pe care
> > > > l-am gasit in situatia asta). Este asta o problema cunoscuta? Sincer,
> habar nu am de unde
> > > > ar putea veni acest bug...
> > > >
> > > > Multumesc,
> > > >
> > > > Silviu
> > > >
> > >
> > >
> > > _______________________________________________
> > > so mailing list
> > > so at cursuri.cs.pub.ro
> > > http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
> > >
> > >
> >
> > Salut,
> >
> > Problema nu e de la pipe ci de la echo. Trebuie sa-i dai parametrii care
> contin spatiu intre apostroafe.
> > Iar apostroafele din comanda initiala sunt eliminate de parser.
> >
>
> Bine, nu neaparat spatii, caractere speciale.
>
> _______________________________________________
> so mailing list
> so at cursuri.cs.pub.ro
> http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so
>
>


More information about the so mailing list