🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5726

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

#5726
From: Philip Paeps
Date: Thu, 06 Mar 2003 19:33
44 lines
2910 bytes
Kris Luyten <kris.luyten@luc.ac.be> wrote:
> dA_CoSMiC wrote:
> > had een klein vraagje waar ik al een tijdje mee verveeld zit hoe kan je in
> > c code het linux commando " ls -al " opvragen van de actieve directory?
> > voor alle duidelijkheid, ik programmeer alles ook in linux
> 
> Je kan Jo's of Philips suggesties gebruiken als je gewoon "ls -la" wil
> uitvoeren. Indien je de data die "ls -la" teruggeeft echter verder wil
> verwerken in je programma is de system call geen goede oplossing imho. 

Het heeft iets weg van een treinticket kopen en dan te gaan lopen, vind ik.
Terwijl je toch code aan't schrijven bent, kan je even goed even twee
pointertjes en een struct extra gebruiken om rechtstreeks aan de data te
komen, in plaats van een child te forken en dan via een pipe of IPC de data te
gaan inlezen.

More than one way to do it, uiteraard :-)

> Daar
> kan je beter de functies aangeboden in de dirent header voor gebruiken denk
> ik. 

Met dirent(5) alleen ben je niet veel, tenzij je enkel 'opervlakkige' dingen
van de file wil weten (naam, lengte van naam, inode, filetype).  Als je het
soort output van ls(1) wil, kan je best ook nog even stat(2) aanspreken.

> Zie http://www.gnu.org/manual/glibc-2.2.3/html_node/libc_toc.html -->
> "Accessing Directories" voor wat meer uitleg.

Of uiteraard de manual op je systeem :-P

> Een simple voorbeeld:
> dp = readdir("/de/dir/om/te/lezen");
> while(eenEntry = readdir(dp)){

Mmm, je gaat wel eerst de directory moeten openen, niet?  De readdir() call
wil een DIR *, en geen const char*.  Volgens mijn manual, tenminste :-)

 - Philip

-- 
Philip Paeps                                                   philip@paeps.cx

  Never sleep with anyone crazier than yourself.
Technical Details
Message-ID: <moN9a.1423$Ma.259@afrodite.telenet-ops.be>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-01!sn-xit-09!supernews.com!news.maxwell.syr.edu!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mail
References: <b47o7l$ic4$1@reader11.wxs.nl> <b482f8$mgq$1@naxos.belnet.be>

Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit
X-Google-Thread: fcea4,27f9cd08e020e305
X-Google-Attributes: gidfcea4,public
X-Google-ArrivalTime: 2003-03-06 11:33:40 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-01!sn-xit-09!supernews.com!news.maxwell.syr.edu!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> <b482f8$mgq$1@naxos.belnet.be>
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))
Lines: 44
Message-ID: <moN9a.1423$Ma.259@afrodite.telenet-ops.be>
Date: Thu, 06 Mar 2003 19:33:38 GMT
NNTP-Posting-Host: 213.118.135.70
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1046979218 213.118.135.70 (Thu, 06 Mar 2003 20:33:38 MET)
NNTP-Posting-Date: Thu, 06 Mar 2003 20:33:38 MET
Organization: Telenet Internet