abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
eParkomat, startup z ČR, postoupil mezi finalisty evropského akcelerátoru ChallengeUp!
Robot na pivo mu otevřel dveře k opravdovému byznysu
Internet věcí: Propojený svět? Už se to blíží...
3.12. 16:24 | Nová verze

Byla vydána Mageia 5.1. Jedná se o první opravné vydání verze 5, jež vyšla v červnu loňského roku (zprávička). Uživatelům verze 5 nepřináší opravné vydání nic nového, samozřejmě pokud pravidelně aktualizují. Vydání obsahuje všechny aktualizace za posledního téměř půldruhého roku. Mageia 5.1 obsahuje LibreOffice 4.4.7, Linux 4.4.32, KDE4 4.14.5 nebo GNOME 3.14.3.

Ladislav Hagara | Komentářů: 4
3.12. 13:42 | Pozvánky

V Praze probíhá konference Internet a Technologie 16.2, volné pokračování jarní konference sdružení CZ.NIC. Konferenci lze sledovat online na YouTube. K dispozici je také archiv předchozích konferencí.

Ladislav Hagara | Komentářů: 0
2.12. 22:44 | Komunita

Joinup informuje, že Mnichov používá open source groupware Kolab. V srpnu byl dokončen dvouletý přechod na toto řešení. V provozu je asi 60 000 poštovních schránek. Nejenom Kolabu se věnoval Georg Greve ve své přednášce Open Source: the future for the European institutions (SlideShare) na konferenci DIGITEC 2016, jež proběhla v úterý 29. listopadu v Bruselu. Videozáznam přednášek z hlavního sálu je ke zhlédnutí na Livestreamu.

Ladislav Hagara | Komentářů: 22
2.12. 15:30 | Zajímavý projekt

Společnost Jolla oznámila v příspěvku Case study: Sailfish Watch na svém blogu, že naportovala Sailfish OS na chytré hodinky. Využila a inspirovala se otevřeným operačním systémem pro chytré hodinky AsteroidOS. Použita je knihovna libhybris. Ukázka ovládání hodinek na YouTube.

Ladislav Hagara | Komentářů: 8
2.12. 14:15 | Nová verze

Byla vydána verze 7.1.0 skriptovacího jazyka PHP používaného zejména k vývoji dynamických webových stránek. Jedná se o první stabilní verzi nejnovější větvě 7.1. Přehled novinek v dokumentaci. Podrobnosti v ChangeLogu. K dispozici je také příručka pro přechod z PHP 7.0.x na PHP 7.1.x.

Ladislav Hagara | Komentářů: 3
2.12. 12:55 | Nová verze

Google Chrome 55 byl prohlášen za stabilní. Nejnovější stabilní verze 55.0.2883.75 tohoto webového prohlížeče přináší řadu oprav a vylepšení (YouTube). Opraveno bylo také 36 bezpečnostních chyb. Mariusz Mlynski si například vydělal 22 500 dolarů za 3 nahlášené chyby (Universal XSS in Blink).

Ladislav Hagara | Komentářů: 4
2.12. 11:55 | Pozvánky

Máte rádi svobodný software a hardware nebo se o nich chcete něco dozvědět? Přijďte na 135. sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.

xkucf03 | Komentářů: 1
2.12. 00:10 | Nová verze

Byla vydána verze 3.2 svobodného systému pro detekci a prevenci průniků a monitorování bezpečnosti počítačových sítí Suricata. Z novinek lze zmínit například podporu protokolů DNP3 a CIP/ENIP, vylepšenou podporu TLS a samozřejmě také aktualizovanou dokumentaci.

Ladislav Hagara | Komentářů: 0
1.12. 21:00 | Nová verze

Byla vydána beta verze Linux Mintu 18.1 s kódovým jménem Serena. Na blogu Linux Mintu jsou hned dvě oznámení. První o vydání Linux Mintu s prostředím MATE a druhé o vydání Linux Mintu s prostředím Cinnamon. Stejným způsobem jsou rozděleny také poznámky k vydání (MATE, Cinnamon) a přehled novinek s náhledy (MATE, Cinnamon). Linux Mint 18.1 bude podporován až do roku 2021.

Ladislav Hagara | Komentářů: 0
1.12. 16:42 | Nová verze

Byl vydán Devuan Jessie 1.0 Beta 2. Jedná se o druhou beta verzi forku Debianu bez systemd představeného v listopadu 2014 (zprávička). První beta verze byla vydána v dubnu letošního roku (zprávička). Jedna z posledních přednášek věnovaných Devuanu proběhla v listopadu na konferenci FSCONS 2016 (YouTube, pdf).

Ladislav Hagara | Komentářů: 2
Kolik máte dat ve svém domovském adresáři na svém primárním osobním počítači?
 (32%)
 (24%)
 (29%)
 (7%)
 (5%)
 (3%)
Celkem 771 hlasů
 Komentářů: 50, poslední 29.11. 15:50
Rozcestník
Reklama

Dotaz: popen, pclose a C

14.2.2008 20:21 kafi | skóre: 24 | blog: muj_prvni_blog
popen, pclose a C
Přečteno: 511×
Preji pekny vecer naprogramoval jsem softik v cecku, na mem ubuntu jede bez problemu. Kdyz jsem ho nahral na server (slackware 9.1) kam ho potrebuju tak se vyskytla hlaska pri spousteni externich prikazu Broken pipe.A v tu chvili cely soft spadne a je konec. Uz jsem googlil co se dalo ale nikde jsem nic nenasel nevite nekdo kde by mohla byt chyba? prikladam dve fce ve ktereych se to deje. teda spis si myslim ze to je problem toho Slackwaru nez meho programovani. preklad provadim pomoci g++ "zdroj.cpp" -o "vystup". Hlaska se objevi po returnu z fce.
unsigned int exec_command (const char *p_command)
{
	FILE *pipe_cmd=NULL;
	
	if ((pipe_cmd=popen(p_command,"w"))==NULL){
		fprintf(stderr,"Don't open pipe!\n");
		exit(1);
	}
	fputs(p_command, pipe_cmd);
	pclose(pipe_cmd);
	return 0;
}
nebo pro cteni
unsigned int read_command (const char *p_command) 
{
	FILE *pipe_cmd=NULL;
	char p_cmd[50]=("cat /var/log/syslog | grep "), vystup[2];

	strcat (p_cmd, p_command);

	if ((pipe=popen(p_cmd,"r"))==NULL) {
		fprintf(stderr,"Nelze spustit externi prikaz!\n");
		exit (1);
	}
	
	if ((fgets(vystup, 2, pipe))!=NULL)  {
		pclose (pipe);
		return 1;
	}
	else {
		pclose (pipe);
		return 0;
	}
}

Odpovědi

Luboš Doležel (Doli) avatar 14.2.2008 20:30 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: popen, pclose a C
Ručně jde ten příkaz spustit bez problémů? Pokud jde o můj systém, tak tu žádný /var/log/syslog není.

Nebylo by lepší nahradit veškeré spouštění podprocesů vlastním kódem?
14.2.2008 20:37 kafi | skóre: 24 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: popen, pclose a C
Hm to v mem pripade pujde tezko spoustim i iptables a to prez cecko asi neporesim. a ja proste potrebuju cist vystup toho prikazu. a prikaz system vraci jen jestli se provedlo ci nikoliv.
Luboš Doležel (Doli) avatar 14.2.2008 20:45 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: popen, pclose a C
A nebude k takovým věcem lepší Bash nebo Perl?
14.2.2008 20:48 kafi | skóre: 24 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: popen, pclose a C
Prave premyslim o nejhorsim, ze bych 600 radku poceni prepsal do perlu, jak i vi pisete, ale kur.. jak se mi nechce. takove sklamani jsem z cecka dlouho nezazil.
15.2.2008 08:12 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: popen, pclose a C
Nemluvte, prosím, o zklamání z céčka. Céčko nemůže za to, že jste si nepřečetl dokumentaci.
15.2.2008 08:05 Michal Kubeček | skóre: 71 | Luštěnice
Rozbalit Rozbalit vše Re: popen, pclose a C
Chcete-li číst výstup toho příkazu, pak druhý parametr popen musí být "r", ne "w". Hláška "broken pipe" znamená, že se pokoušíte zapisovat do roury, jejíž druhý konec mezitím druhá strana zavřela. V tomto případě příkaz iptables skončí, aniž by četl to, co mu posíláte na stadardní vstup.
14.2.2008 22:01 petris
Rozbalit Rozbalit vše Re: popen, pclose a C
Existuje a ma spravna prava soubor /var/log/syslog? Jsou vsechny spoustene programy v $PATH?
14.2.2008 22:16 qk | skóre: 15 | blog: qk_develop
Rozbalit Rozbalit vše Re: popen, pclose a C
No zaprvy bych rekl, ze neni tohle zrovna idealni zpusob progamovani..navic mi to prijde jako dost nesikovny.
Chyby co vidim -
nekontrolujes jestli se povedlo fputs.
osobne bych taky dal aspon aserty na vstupni parametry.

Jinak ten error ti rika, ze se pokousis cist nebo zapisovat do pipe, kterou uz nekdo na druhe strane zavrel (at uz zapisovatel nebo ctenar).
14.2.2008 22:25 kafi | skóre: 24 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: popen, pclose a C
puts nekontroluju protoze jsem to testoval. jestli jde aspon spoustet kdyz ne cist. vstupni parametry tech funkci jsou osetreny pri volani tech f-ci. takze v tele samotnych f-ci mi to prijde vcelku zbytecne. jinak dekuji za reakce. stale nehazim flintu do zita a experimentuju. prepisovat do perlu se mi to fakt nechce.
14.2.2008 22:27 kafi | skóre: 24 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: popen, pclose a C
Jeste jsem zapomnel. jak uz jsem psal chybove hlaseni se objevi po returnu z fce. takze je zadouci aby jiz bykla roura zavrena. takze jsem z toho lehce zmateny. proc neni zavrena?
14.2.2008 22:30 qk | skóre: 15 | blog: qk_develop
Rozbalit Rozbalit vše Re: popen, pclose a C
Ale to broken pipe dle mne vyhodi to fputs nebo fgets...ne az to fclose....schvalne doporucuju pro ladeni tam dat nejake vypisy.
14.2.2008 22:32 petris
Rozbalit Rozbalit vše Re: popen, pclose a C
Co ta práva? Zkousel jste koukat do strace?
14.2.2008 22:48 lkfjsu984
Rozbalit Rozbalit vše Re: popen, pclose a C
Jak uz tady qkecko rikalo, Broken pipe znamena, ze zapisujes do pipy, ktera uz je zavrena. Jde totiz o to, ze kdyz pustis ten program tak je to vicemene samostatna vec, ktera nejak komunikuje s tim tvym programem. A jde o to, jak ma ten program poznat jestli jeste ten druhy neskocil, je pripraveny cist a tak. Komunikace se dela prostrednictvim signalu a konkretne v tomhle pripade asi SIGPIPE. A ty signaly muzes bud ignorovat (jak to delas) nebo je odchytavat a pak treba kdyz ho dostanes tak proste skoncit program misto dalsiho psani do neexistujici pipy. (man 7 signal, ...). Ja to obvykle resim:
void pipebreak(int sig)
{
}
...
signal(SIGPIPE, pipebreak);
(tohle ovsem neni priklad hodny nasledovani).

Nicmene podle me tam je nejaka nekonzistence v tom co ty spoustene prikazy vypisuji (asi jina verze na obou pocitaich) a tak to bude asi potreba nejak osetrit.
15.2.2008 01:06 Jirka P
Rozbalit Rozbalit vše Re: popen, pclose a C
(tohle ovsem neni priklad hodny nasledovani).
Podle mně je to naprosto v pohodě (i když mnohem lepší ignorovat je pomocí signal(SIGPIPE, SIG_IGN) (pozn. default je terminate). Potom se ta chyba projeví tak že fputs selže a v errno je EPIPE (tuším).

Každopádně na ladění takových chyb je nejlepší strace -f
22.2.2008 10:32 kafi | skóre: 24 | blog: muj_prvni_blog
Rozbalit Rozbalit vše Re: popen, pclose a C
ak panove driv jsem se k tomu nedostal az ted a koul jsem se na to co stim a zjistil jsem:
1/ spousteny command jsem skladal do pole deklarovaneho jako cmd[300]
2/ udelal jsem z nej dynamicky aloccovane a najednou zacal fungovat i sprintf
3/ ve vstupech do funkci jsem udelal z pointeru na command staicky command[300]
a funguje.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.