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>
