Help me system()
5 отговора
219 прегледа
Help me system()
Zdraveyte na vsi4ki vyv foruma.
Imam edin vypros i shte sym mnogo blagodaren, ako niakoy mi pomogne.
Zna4i funkciata "system" na C++ moje da izpylniava DOS komandi (a i Linux komandi syshto). Naprimer
system("dir");
shte izpylni comandata dir i na ekrana shte se poyavi rezultata ot izpylnenieto. Samo, 4e na men ne mi triabva rezultata da se poyaviava na ekrana, a bih iskal da go zapisha v niakoy string. Moje li tova da se napravi. Mislia, 4e biah se natyknal na neshto takova v tozi ili v niakoy drug forum, no ne se seshtam to4no kyde beshe.
Mersi predvaritelno.
Imam edin vypros i shte sym mnogo blagodaren, ako niakoy mi pomogne.
Zna4i funkciata "system" na C++ moje da izpylniava DOS komandi (a i Linux komandi syshto). Naprimer
system("dir");
shte izpylni comandata dir i na ekrana shte se poyavi rezultata ot izpylnenieto. Samo, 4e na men ne mi triabva rezultata da se poyaviava na ekrana, a bih iskal da go zapisha v niakoy string. Moje li tova da se napravi. Mislia, 4e biah se natyknal na neshto takova v tozi ili v niakoy drug forum, no ne se seshtam to4no kyde beshe.
Mersi predvaritelno.
Re: Help me system()
Ne, ne me ustroyva, no kaji ideyata pa moje da se dosetia neshto sled tova.
Re: Help me system()
ami prenasochwash izhoda...
dir > myfile
a posle si chetesh faila w sting
ako e pod unix moje da probwash da izpylnish komandata
w apostrofi i da set-wash niakoia promenliwa w environmenta
towa sega si go izmisliam neznam dali shte
stane sys system, po-skoro niama da stane...
shte wzema da si sloja linux...
moje da wiknesh system() mseniash faila na standartnia izhod
ako shell-a pusnat sys system() naslediawa standarnite i/o failowe
mislia che izhoda e s file handle == 1
moje da polzwah fileno( stdout )
t.e.
old_output = dup(1);
new_output = open( "myfile", ..
dup2( new_output, 1 );
...
dup2( 1, new_output );
dup2( old_output, 1);
ako smeniash handle na FILE fail triabwa da si go flushwash
s fflush
ako iskash i stderr da prenasochish wyw tozi file, ti go ostawiam za domashno:)
dir > myfile
a posle si chetesh faila w sting
ako e pod unix moje da probwash da izpylnish komandata
w apostrofi i da set-wash niakoia promenliwa w environmenta
towa sega si go izmisliam neznam dali shte
stane sys system, po-skoro niama da stane...
shte wzema da si sloja linux...
moje da wiknesh system() mseniash faila na standartnia izhod
ako shell-a pusnat sys system() naslediawa standarnite i/o failowe
mislia che izhoda e s file handle == 1
moje da polzwah fileno( stdout )
t.e.
old_output = dup(1);
new_output = open( "myfile", ..
dup2( new_output, 1 );
...
dup2( 1, new_output );
dup2( old_output, 1);
ako smeniash handle na FILE fail triabwa da si go flushwash
s fflush
ako iskash i stderr da prenasochish wyw tozi file, ti go ostawiam za domashno:)
Re: Help me system()
Ami programata se printi na STDOUT koito e Failov Descriptor i mozesh da mu suzdadesh kopie sus dup2 (int oldfd, int newfd) i sled tova da si prochetesh dannite ot failovija descriptor s read(fd,buff,count);
Znachi tova e pod UNIX no pishe che sa po POSIX a do kolkoto si spomnjam Windows poddurzashe POSIX no ne sum mnogo siguren v tova. Taka che tova moze i da ne vurvi pod Win no probvaj
za poveche info
man dup
man read
Znachi tova e pod UNIX no pishe che sa po POSIX a do kolkoto si spomnjam Windows poddurzashe POSIX no ne sum mnogo siguren v tova. Taka che tova moze i da ne vurvi pod Win no probvaj
za poveche info
man dup
man read