ubuntuusers.de

Bug?oder wo liegt mein Denkfehler? C

Status: Gelöst | Ubuntu-Version: Kubuntu 7.04 (Feisty Fawn)
Antworten |

Behind_These_Walls

Anmeldungsdatum:
7. März 2007

Beiträge: 291

Hallo,
ganz einfaches Porgramm:

#include <stdio.h>

int main(int argc, char* argv[])
{
        char c = **++argv;
        printf("%c", c);
        return 0;
}


wenn ich das Programm nun aufrufe und ein + übergebe also ./test +
dann gibt es auch ein '+' aus, aber wenn ich ein * übergebe gibt es mir ein 'a' aus. warum ist das so?ist das bei euch auch so?kann mir da jmd helfen?
vielen Dank

Maduser

Avatar von Maduser

Anmeldungsdatum:
3. Mai 2005

Beiträge: 1238

Weil * ein Zeichen ist das in der Bash ersetzt wird.
Versuch mal

echo *


Dann solltest du dein Verzeichnisinhalt sehen. Das ist genau das was deinem Programm übergeben wird.
Abhilfe schafft nur beim aufruf das * zu maskieren mit

\*

.

Behind_These_Walls

(Themenstarter)

Anmeldungsdatum:
7. März 2007

Beiträge: 291

stimmt, an das hab ich jetzt nicht gedacht. vielen Dank für die Antwort

Antworten |