Article View: be.comp.programming
Article #5725Re: het linux commando " ls -al " opvragen vanuit c code
From: Philip Paeps
Date: Thu, 06 Mar 2003 19:21
Date: Thu, 06 Mar 2003 19:21
64 lines
3029 bytes
3029 bytes
dA_CoSMiC <da_cosmic@hotmail.com> wrote:
> Philip Paeps <philip@paeps.cx> wrote:
> > dA_CoSMiC <da_cosmic@hotmail.com> 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?
> >
> > De properste manier om dit te doen is je directory openen, en in een loop
> > iedere file stat'en. Met stat krijg je en pointer naar een struct stat
> > waar je je zin mee kunt doen.
>
> stat'en?
Lees ook stat(2).
> ken ik niet echt, ben nog maar een beginner is stat ��n of ander functie,
> een type, ... ?
Het is een systemcall :-P
> misschien volstaat die system functie wel in mijn klein project maar iets
> bijleren kan nooit geen kwaad natuurlijk
Om een klein (en relatief zinloos en lelijk) voorbeeld te geven:
#include <sys/stat.h>
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
int
main()
{
DIR *dirp; /* lees opendir(3) */
struct dirent *dp; /* van hetzelfde */
struct stat st; /* dit staat in stat(2) */
dirp = opendir("."); /* open de directory */
while ((dp = readdir(dirp)) != NULL)
{
stat(dp->d_name,&st);
printf("%o, %s\n", (int)st.st_mode, dp->d_name);
}
(void)closedir(dirp);
return 0;
}
Als je de source van ls(1) leest zul je (not checked) merken dat die het het
waarschijnlijk ook op zo'n manier doet.
Veel plezier.
- Philip
--
Philip Paeps philip@paeps.cx
BOFH Excuse #403:
Sysadmin didn't hear pager go off due to loud music from bar-room
speakers.
Technical Details
Message-ID:
<9dN9a.1394$Ma.85@afrodite.telenet-ops.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!64.152.100.70.MISMATCH!sjc70.webusenet.com!news.webusenet.com!iad-peer.news.verio.net!news.verio.net!skynet.be!skynet.be!ossa.telenet-ops.be!afrodite.telenet-ops.be.POSTED!not-for-mailReferences:
<b47o7l$ic4$1@reader11.wxs.nl> <SyL9a.1119$Ma.77@afrodite.telenet-ops.be> <b482sd$npj$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 11:21:41 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-06!sn-xit-08!supernews.com!64.152.100.70.MISMATCH!sjc70.webusenet.com!news.webusenet.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> <SyL9a.1119$Ma.77@afrodite.telenet-ops.be> <b482sd$npj$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: 64
Message-ID: <9dN9a.1394$Ma.85@afrodite.telenet-ops.be>
Date: Thu, 06 Mar 2003 19:21:41 GMT
NNTP-Posting-Host: 213.118.135.70
X-Complaints-To: abuse@telenet.be
X-Trace: afrodite.telenet-ops.be 1046978501 213.118.135.70 (Thu, 06 Mar 2003 20:21:41 MET)
NNTP-Posting-Date: Thu, 06 Mar 2003 20:21:41 MET
Organization: Telenet Internet