Date: Wed, 9 Jul 2008 22:37:59 +0200 From: Michael Rasmussen <none@mir--datanom.net.lh.bsd-dk.dk> To: bsd-dk@bsd-dk.dk Subject: Re: freebsd: unix socket programmering
On Wed, 9 Jul 2008 22:08:32 +0200
Michael Knudsen <none@e--molioner.dk.lh.bsd-dk.dk> wrote:
>
> Hvad for noget? sun_path har allokeret (100 * sizeof(char)) == 100
> bytes, ligegyldigt hvor meget af det du saa bruger. sizeof()
> evalueres paa compile-time. Den ved intet om, hvor meget du bruger
> paa runtime. Det er ikke strlen().
>
Jeg tror, du har misforstået mig:-) Jeg argumenterede netop for, at der
er forskel på sizeof og strlen af et array. I mit tilfælde skulle jeg
vide den eksakte længde af array'ets indhold, og ikke den maksimale
længde af array'et.
#include <stdio.h>
#include <string.h>
#define ARRAYSZ 100
struct bras {
int hurra;
char ohno[ARRAYSZ];
};
int
main(int argc, char **argv)
{
struct bras a;
char test[] = "testing";
printf("sz a %zd sz bras %zd\n", sizeof(a), sizeof(struct bras));
memcpy(a.ohno, test, sizeof(test));
printf("sz a %zd sz bras %zd sz a.ohno %zd strlen a.ohno %zd\n",
sizeof(a), sizeof(struct bras), sizeof(a.ohno), strlen(a.ohno));
return 0;
}
$ ./a.out
sz a 104 sz bras 104
sz a 104 sz bras 104 sz a.ohno 100 strlen a.ohno 7
-- Hilsen/Regards Michael RasmussenGet my public GnuPG keys: michael <at> rasmussen <dot> cc http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xD3C9A00E mir <at> datanom <dot> net http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE501F51C mir <at> miras <dot> org http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917 -------------------------------------------------------------- printk("GSCD: magic ...\n"); linux-2.6.6/drivers/cdrom/gscd.c
This archive was generated by hypermail 2b30 : Thu 31 Jul 2008 - 23:00:01 CEST