Gå til innhold

nybegynner, trenger hjelp til krøll pekerkrøll


Anbefalte innlegg

hei har en liten kodesnutt her jeg trenger forklaring på.

 

hvorfor blir det slik at når jeg kjører dette programmet med * som første argument, blir ikke utskriften * men k istedet? jeg antar at det blir krøll med pekere her, men trenger litt god forklaring =)

 

 

int main(int argc, char *argv[]) {

 

cout << argv[1]<<endl;

return 0;

}

Lenke til kommentar
Videoannonse
Annonse

Hehe

Er vel ikke en feil, men jeg synes det er et dårlig designvalg.

Det hadde vært bedre om dette var en funksjon i programmeringsspråket fremfor at shellet gjør det.

 

Et problem dette kan skape, er at dersom en lager en fil som heter -r (som er helt lovlig) og du deretter skriver rm * for å slette alle filene i mappen, så vil -r bli sett på som et programargument og ikke en fil, og dermed vil alle undermapper også bli slettet, men -r blir igjen.

 

Er det en bug, eller en feature da?

Lenke til kommentar
Et problem dette kan skape, er at dersom en lager en fil som heter -r (som er helt lovlig) og du deretter skriver rm * for å slette alle filene i mappen, så vil -r bli sett på som et programargument og ikke en fil, og dermed vil alle undermapper også bli slettet, men -r blir igjen.

 

Er det en bug, eller en feature da?

 

Ingen av delene -- dette er feil bruk av shellet. Den rette framgangsmåten er selvsagt å bruke 'rm ./*'. For å ikke snakke om alle måtene programmene ville ha ekspandert * feil på.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...