Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ShellExecute pod Linuxom?(C++)

[es] :: C programiranje :: ShellExecute pod Linuxom?(C++)

[ Pregleda: 1615 | Odgovora: 11 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mirko Rajkovača
Subotica

Član broj: 18458
Poruke: 119
*.ns.ac.yu.



Profil

icon ShellExecute pod Linuxom?(C++)19.10.2006. u 13:23

koja c++ funkcija pod linuksom je ekvivalent shellExecute pod windowsom? Znaci da jednostavno startuje program, a ne da kreira child proces
Razlika izmedju softvera i hardvera je:
Softver je nesto sto mozes psovati, a hardver je... pa hardver je nesto sto mozes sutati
19.10.2006. u 13:23 

Buffy
Stanko Culaja
za sada sam nezaposlen!
Sipovo,Republika Srpska

Član broj: 45310
Poruke: 312
*.teol.net.

Sajt: www.sipovo.org


Profil

icon Re: ShellExecute pod Linuxom?(C++)19.10.2006. u 13:44
mozes pomocu system funkcije:
Code:

#include <stdlib.h>

...

system("program &"); //obrati paznju na "&". kad uneses ovaj znak tred is kojeg si pozvao system funkciju nece biti blokiran.
...

dakle obavezno stavi &.
ima i drugih nacina za pokretanje programa, ali ovo ti je dovoljno ;)
pozdrav!
SAMO DA RATA NE BUDE,
LUDILA MEDJU LJUDIMA,
VELIKI NUDE ZABLUDE,
PLASE NAS RAZNIM CUDIMA
I SVAKOJ BAJCI NAUDE,
DA RATA NE BUDE.

Djordje Balasevic
19.10.2006. u 13:44 

Mirko Rajkovača
Subotica

Član broj: 18458
Poruke: 119
*.ns.ac.yu.



Profil

icon Re: ShellExecute pod Linuxom?(C++)23.10.2006. u 11:20
To je to, radi!

Tnx
Razlika izmedju softvera i hardvera je:
Softver je nesto sto mozes psovati, a hardver je... pa hardver je nesto sto mozes sutati
23.10.2006. u 11:20 

cynique
Ivan Štambuk
Zagreb@Croatia

Član broj: 93690
Poruke: 155
193.198.17.*

ICQ: 106979934
Sajt: istambuk.blogspot.com


Profil

icon Re: ShellExecute pod Linuxom?(C++)23.10.2006. u 12:22
Za finiju kontrolu, pogledaj exec* familiju fja:

http://www.opengroup.org/onlinepubs/009695399/functions/exec.html
23.10.2006. u 12:22 

EArthquake
Aleksandar Nikolic
Novi Sad

Član broj: 20684
Poruke: 651
194.106.187.*

Sajt: www.phearless.org


Profil

icon Re: ShellExecute pod Linuxom?(C++)10.11.2006. u 16:38
samo da napomenem


postoji sigurnosni problem kod system() funkcije

naime , ona se oslanja na varijable okruzenja pri pokretanju programa , tacnije na $PATH varijablu po kojoj trazi program koji treba da pokrene

tako da , osim ako ne stavljas fulll path do programa, neko moze da se poigra i da natera tvoj program da radi nesto drugo ,

to i nije veliki problem , osim ako tvoj program nije suid , onda omogucava pokretanje bilo kog drugog programa sa visi privilegijama , a to je vec ozbilja n sigurnosni propust


mozda nebitno , al reko da napomenem, ne moz` da skodi :)


pozdrav
Aca



www.phearless.org
foundation.phearless.org
www.matematiranje.com
10.11.2006. u 16:38 

Mirko Rajkovača
Subotica

Član broj: 18458
Poruke: 119
82.131.178.*



Profil

icon Re: ShellExecute pod Linuxom?(C++)11.11.2006. u 15:16
sada imam drugi problem, radi ovo sa system ali je problem sto se novi proces i dalje tretira kao child od pocetnog procesa, tj. prvobitan program nece da se zavrsi dok se program pokrenut sa "system" ne zavrsi a to mi nikako ne odgovara...
Tacna situacija je ovakva: imam broker program koji komunicira sa server aplikacijom, ako server nije startovan broker startuje server komunicira sa njim i zatvara se dok server ostaje aktivan i ceka narednog brokera

Jednostavno mi treba zamena za ShellExecute pod Windowsom pogledao sam svugde ali nisam nasao, svaka ideja je dobro dosla...
Hvala unapred
Razlika izmedju softvera i hardvera je:
Softver je nesto sto mozes psovati, a hardver je... pa hardver je nesto sto mozes sutati
11.11.2006. u 15:16 

Buffy
Stanko Culaja
za sada sam nezaposlen!
Sipovo,Republika Srpska

Član broj: 45310
Poruke: 312
*.teol.net.

Sajt: www.sipovo.org


Profil

icon Re: ShellExecute pod Linuxom?(C++)11.11.2006. u 15:42
moze li exec?

SAMO DA RATA NE BUDE,
LUDILA MEDJU LJUDIMA,
VELIKI NUDE ZABLUDE,
PLASE NAS RAZNIM CUDIMA
I SVAKOJ BAJCI NAUDE,
DA RATA NE BUDE.

Djordje Balasevic
11.11.2006. u 15:42 

mulaz
Ljubljana

Član broj: 47602
Poruke: 1675
*.dial-up.dsl.siol.net.

Jabber: mulaz@elitesecurity.org
Sajt: www.mulaz.org


Profil

icon Re: ShellExecute pod Linuxom?(C++)11.11.2006. u 16:10
dali exec i system vracaju output programa?
mislim da je funkcija system tipa int, i da vraca samo 0 ako je program uspesno odradio ili nesto ako nije
jel moguce piokupiti izlaz programa? mislim.. ako exece pokrene komandu ls, da bi pokupio listu foldera/fajlova?
Bolje ispasti glup nego iz aviona
http://www.mulaz.org/blog/ http://spam.mulaz.org/
11.11.2006. u 16:10 

EArthquake
Aleksandar Nikolic
Novi Sad

Član broj: 20684
Poruke: 651
194.106.187.*

Sajt: www.phearless.org


Profil

icon Re: ShellExecute pod Linuxom?(C++)12.11.2006. u 21:43
ne , exec familija funkcija pokrece program , ne mozes da uzmes njegov output, on se ponasa kao da nije child ,

znaci ls samo ispisuje sve na stdout
www.phearless.org
foundation.phearless.org
www.matematiranje.com
12.11.2006. u 21:43 

Mirko Rajkovača
Subotica

Član broj: 18458
Poruke: 119
82.131.178.*



Profil

icon Re: ShellExecute pod Linuxom?(C++)13.11.2006. u 23:29
Ja mozda ne razumem ali u manualu za exec familiju funkcija lepo i jasno pise da stvara proces koji zamenjuje tekuci proces ili tako nesto, znaci ne izvrsava samo prosto startovanje programa. Ili ja lose razumem ili to nije to(verovatno je ovo prvo )

Ako vam nije problem dajte mi jedan primer, znaci jednostavno startovanje aplikacije, njena dalja kontrola mi nije bitna a komunikacija se odvija preko pipe-ova

Hvala
Razlika izmedju softvera i hardvera je:
Softver je nesto sto mozes psovati, a hardver je... pa hardver je nesto sto mozes sutati
13.11.2006. u 23:29 

mbabuskov
Milan Babuskov
Subotica

Član broj: 4718
Poruke: 174
82.131.178.*

ICQ: 112600131
Sajt: home.gna.org/vodovod


Profil

icon Re: ShellExecute pod Linuxom?(C++)02.02.2007. u 21:11
Za kupljenje izlaza (stdout) programa najlakse je koristiti popen(3) pa onda sa fgets(3) ili fread(3) citati.

Ili napraviti FIFO (pomocu mkfifo(1)) pa citati iz njega (pod uslovom da program pise tamo).

Sto se tice toga da procesor bude child, na Linuxu svaki proces mora imati parenta. Ako neces da ti proces bude child onoga koji ga je kreirao, mozes eventualno da prebacis da ti parent bude sam init. Verovatno bas to i zelis. Pogledaj daemon(3) za vise detalja.

02.02.2007. u 21:11 

NastyBoy
Bojan Nastic
UK

Član broj: 12041
Poruke: 895
*.plus.com.



Profil

icon Re: ShellExecute pod Linuxom?(C++)03.02.2007. u 12:10
Citat:
Ja mozda ne razumem ali u manualu za exec familiju funkcija lepo i jasno pise da stvara proces koji zamenjuje tekuci proces ili tako nesto, znaci ne izvrsava samo prosto startovanje programa. Ili ja lose razumem ili to nije to(verovatno je ovo prvo )

To jeste tako kako pishe. Stvari na *nixu rade malo drugachije od Win-a. exec familija funkcija zamenjuje image trenutnog procesa novim procesom.

Standardni nachin da na *nix-u startujesh eksterni proces bi bio da koristish fork/exec bateriju, eventualno u saradnji sa waitpid() da bi sachekao da se proces zavrshi i pokupio izlaznu vrednost.
03.02.2007. u 12:10 

[es] :: C programiranje :: ShellExecute pod Linuxom?(C++)

[ Pregleda: 1615 | Odgovora: 11 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.