Re: freebsd: unix socket programmering

From: Michael Rasmussen (none@mir--datanom.net.lh.bsd-dk.dk)
Date: Wed 09 Jul 2008 - 22:37:59 CEST


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 Rasmussen

Get 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