🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5732

Re: het linux commando " ls -al " opvragen vanuit c code

#5732
From: Philip Paeps
Date: Thu, 06 Mar 2003 22:45
47 lines
3210 bytes
dA_CoSMiC <da_cosmic@hotmail.com> wrote:
> > Dit is quick and dirty:
> >
> > system ("ls -al >bestand");
> >
> > Luc K
> 
> allemaal ongelofelijk bedankt!
> was al bezig met de andere tips wat uit te werken, maar dat liep niet direct
> van een leien dakje

Doorzetten!  Je kunt er alleen maar van bijleren.  En zo bepaald 'advanced'
waren de voorbeelden ook niet :-)

> dat het dirty code is geeft niet direct, het project draait immers eerder
> rond sockets enzo dan rond system calls en het feit of die al dan niet
> netjes zijn

Sockets gebruiken ook syscalls hoor :-P  Bind(2) is een syscall, listen(2)
ook, socket(2) ook, connect(2) ook...  Blijven niet veel library calls over
(nuja :-P).

> waarom is dat eigenlijk zo'n beetje not done om op die manier te werken?

Het probleem is dat je met system() een shell forkt die gaat dan je commando
uitvoeren.  Dat kan op veel manieren sterven: wil niet forken, child sterft,
uiteindelijke commando sterft, data overflowt de buffer die je ervoor
voorziet, enz.  Door gewoon zelf de informatie aan het systeem te vragen kan
je minder problemen krijgen, en zijn de problemen ook makkelijker te vangen.
Je hebt ook meer kans op 'portable' (brede definitie) code.  Je weet immers
niet wat voor krankzinnige shell 'Platform X' waarop je code gaat draaien
gebruikt, en wat voor bizarre dingen die met je input en output gaat doen.

System calls als stat zijn relatief standaard (POSIX...), en met een minimum
aan preprocessor geklungel kan je zonder problemen tussen de meeste UNIXen
porten.

Als extra voordeel is het gewoon effici�nter, en je spaart een paar entries in
je process-table.  Zuinig zijn op resources heet dat dan :-)

 - Philip

-- 
Philip Paeps                                                   philip@paeps.cx

  BOFH Excuse #192:
    runaway cat on system.
Technical Details
Message-ID: <gcQ9a.2179$Ma.281@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <b47o7l$ic4$1@reader11.wxs.nl> <b47t8p$m1s$1@nl-news.euro.net> <b47vqh$m1h$1@reader11.wxs.nl> <vQO9a.1790$Ma.285@afrodite.telenet-ops.be> <b48gi8$444$1@reader11.wxs.nl>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII
X-Google-Thread: fcea4,27f9cd08e020e305
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-03-06 14:46:37 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-09!supernews.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
Sender: Philip Paeps <philip@prosperina.home.paeps.cx>
From: Philip Paeps <philip@paeps.cx>
Subject: Re: het linux commando " ls -al " opvragen vanuit c code
Newsgroups: be.comp.programming
References: <b47o7l$ic4$1@reader11.wxs.nl> <b47t8p$m1s$1@nl-news.euro.net> <b47vqh$m1h$1@reader11.wxs.nl> <vQO9a.1790$Ma.285@afrodite.telenet-ops.be> <b48gi8$444$1@reader11.wxs.nl>
X-Date-in-Rome: pridie Nonas Martias MMDCCLVI ab Urbe Condida
User-Agent: tin/1.5.17-20030301 ("Bubbles") (UNIX) (FreeBSD/5.0-CURRENT (alpha))
MIME-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
Lines: 47
Message-ID: <gcQ9a.2179$Ma.281@afrodite.telenet-ops.be>
Date: Thu, 06 Mar 2003 22:45:32 GMT
NNTP-Posting-Host: 213.118.135.70
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1046990732 213.118.135.70 (Thu, 06 Mar 2003 23:45:32 MET)
NNTP-Posting-Date: Thu, 06 Mar 2003 23:45:32 MET
Organization: Telenet Internet