Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 06 Dec 2000 14:31:43 -0700
From:      Wes Peters <wes@softweyr.com>
To:        "G. Adam Stanislav" <adam@whizkidtech.net>
Cc:        Stephen McKay <mckay@thehub.com.au>, hackers@FreeBSD.ORG
Subject:   Re: pipe
Message-ID:  <3A2EB03F.8D9105A8@softweyr.com>
References:  <20001202085127.A301@int80h.org> <3A292D98.E655D755@softweyr.com> <20001203012841.B228@whizkidtech.net> <200012040256.eB42upH07905@dungeon.home> <20001205085645.A228@whizkidtech.net>

next in thread | previous in thread | raw e-mail | index | archive | help

"G. Adam Stanislav" wrote:
> 
> On Mon, Dec 04, 2000 at 12:56:51PM +1000, Stephen McKay wrote:
> >Using pipes for temporary storage is still a crazy idea.  Pipes can be
> >smaller than 8K, depending on the flavour of Unix.
> 
> It was just a thought, and it did not work. :) Other flavors of Unix
> are not too important in this case: I'm writing a FreeBSD assembly
> language tutorial. Though I do discuss portability issues in it.
> I'm writing the tutorial, not because I'm the expert (I am, on assembly
> language, but not on Unix system calls--yet), but because, in my
> experience, it is the best way to learn.
> 
> > Use malloc() instead.
> 
> Unfortunately, that only works in C. :)

You are, of course, wrong here.  You can (and should) link your assembly
programs with the C library -- half the power of UNIX is in the libraries.
You can call all of the library functions just fine, as long as you under-
stand the calling conventions.

> I tried to figure out how to allocate memory, but, so far, was completely
> unsuccessful. I studied the source for the C malloc, but did not understand
> any of it. It uses something called mmap. I read the man page for mmap,
> and was totally frustrated. It talks about mapping files into memory,
> but I am not looking for files. It talks about passing an address to the
> function. I don't get it... What address? I want it to allocate memory
> for me and tell me its address. How am I supposed to know what address
> is available???

If you pass it NULL as the address, mmap will select an address for you.  
If you just want to allocate some memory, mmap /dev/null MAP_PRIVATE.   
You need to read the man pages and the malloc code more carefully.

-- 
            "Where am I, and what am I doing in this handbasket?"

Wes Peters                                                         Softweyr LLC
wes@softweyr.com                                           http://softweyr.com/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3A2EB03F.8D9105A8>