Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #108115
| Newsgroups | comp.lang.c |
|---|---|
| From | bartc <bc@freeuk.com> |
| Subject | main() |
| Message-ID | <ecUHA.285656$15.165152@fx07.am4> (permalink) |
| Organization | virginmedia.com |
| Date | 2017-04-14 00:53 +0100 |
I think this is not strictly part of the language but someone here may
happen to know how it's done.
The arguments to a programs entry point such as main(int n, char** args)
are not set up by the OS, but by some function the C implementation
arranges.
On Windows at least, where such a function might use GetCommandLine() or
__getmainargs() to obtain the command-line arguments and pass them to
main().
What's the equivalent on Linux? Or will those args just magically be on
the stack anyway? (Because after all Linux and C are very.. close.)
(I played around with code like this which possibly suggests the latter,
but I need something definite. It seemed to work though!
[32-bit ARM]
#include <stdio.h>
int main(void) {
int i;
int n;
int *p=&i;
char** s;
for (i=0;i<10;++i) printf("%d: %d\n",i,*(p+i));
n=*(p+5);
s=(char**)*(p+4);
printf("N=%d\n",n);
for (i=0;i<n;++i) printf("%d: %s\n",i,s[i]);
}
)
--
bartc
Back to comp.lang.c | Previous | Next — Next in thread | Find similar | Unroll thread
main() bartc <bc@freeuk.com> - 2017-04-14 00:53 +0100
Re: main() Robert Wessel <robertwessel2@yahoo.com> - 2017-04-13 19:10 -0500
Re: main() antispam@math.uni.wroc.pl - 2017-04-14 02:51 +0000
Re: main() scott@slp53.sl.home (Scott Lurndal) - 2017-04-14 12:58 +0000
Re: main() bartc <bc@freeuk.com> - 2017-04-14 14:11 +0100
Re: main() Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-04-15 07:53 -0700
Re: main() supercat@casperkitty.com - 2017-04-15 08:43 -0700
Re: main() Ben Bacarisse <ben.usenet@bsb.me.uk> - 2017-04-15 16:50 +0100
Re: main() Keith Thompson <kst-u@mib.org> - 2017-04-15 15:31 -0700
Re: main() gordonb.y2etp@burditt.org (Gordon Burditt) - 2017-04-16 00:19 -0500
The exec*() family (Was: main()) gazelle@shell.xmission.com (Kenny McCormack) - 2017-04-15 17:01 +0000
Re: main() Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-04-14 10:04 -0400
Re: main() bartc <bc@freeuk.com> - 2017-04-14 15:52 +0100
Re: main() scott@slp53.sl.home (Scott Lurndal) - 2017-04-14 15:00 +0000
Re: main() Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2017-04-14 13:49 -0400
csiph-web