🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

2 total messages Started by Qrczak Tue, 20 Jan 1998 14:49
Re: argv
#738
Author: Qrczak
Date: Tue, 20 Jan 1998 14:49
39 lines
2104 bytes
On Tue, 20 Jan 1998, Pawel Piotrowski wrote:

> Podejrzewan, ze zalezy to od konkretnej implementacji - konkretniej
> modulku c0??.obj ktory jest linkowany z programem. W modulku tym jest
> 'entry point' do programu, z niego jest wolany main. W BC5 nie ma z tym
> problemu, gdzie indziej raczej tez nie powinno.

A co mówi na ten temat standard? Mnie nie wystarczy, że to czasem działa
- chcę wiedzieć, czy to zawsze _musi_ działać. Jeśli to ma obowiązek
działać, to trochę uprości mi to program.

Z linuksowym GCC działa.

On Tue, 20 Jan 1998, Gracjan Ziółek wrote:

> Nie wiem, czy o to chodzi w pytaniu, ale main() jest zwykla funkcja,
> wiec argv zachowuje sie dokladnie tak, jak argumenty innych funkcji.

Tak, ale nie wszystko, co da się skompilować, jest poprawne. Ja wiem, że
mogę spróbować zmienić tę wartość i być może u mnie zadziała - ale może
miałem szczęście, że zrobiłem to danym kompilatorem na danej platformie,
a gdzie indziej już będzie inaczej. Być może gdzieś argv pokazuje na
jakiś systemowy obszar pamięci, do którego mój program nie ma praw
zapisu.

W szczególności pytam, czy taki program jest formalnie poprawny, czy też
na jakiejś platformie może się wysypać:

main (int argc, char *argv[])
{
  if (argc >= 2 && strlen (argv[1]) >= 3)
    strcpy (argv[1], "123");
}

-- 
                                 QRCZAK
    __("<              Marcin Kowalczyk
    \__/              qrczak@knm.org.pl
     ^^      http://qrczak.home.ml.org/
Re: argv
#739
Author: Gracjan Ziółek
Date: Wed, 21 Jan 1998 17:35
18 lines
981 bytes
Qrczak wrote:
[...]
> W szczególności pytam, czy taki program jest formalnie poprawny, czy też
> na jakiejś platformie może się wysypać:
> 
> main (int argc, char *argv[])
> {
>   if (argc >= 2 && strlen (argv[1]) >= 3)
>     strcpy (argv[1], "123");
> }

Jest poprawny.

	pozdrawiam

-- 
gracjan ziółek
system administrator
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads