🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #5725

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

#5725
From: Philip Paeps
Date: Thu, 06 Mar 2003 19:21
64 lines
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-mail
References: <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