Ero sivun ”Väite” versioiden välillä
p (→Antaminen) |
p (→C) |
||
Rivi 54: | Rivi 54: | ||
Väite no. 0 on: ./väiteotto | Väite no. 0 on: ./väiteotto | ||
$ ./väiteotto jgaoirjg | $ ./väiteotto jgaoirjg igaoierj | ||
Väitteittesi määrä on | Väitteittesi määrä on 3 | ||
Väite no. 0 on: ./väiteotto | Väite no. 0 on: ./väiteotto | ||
Väite no. 1 on: jgaoirjg | Väite no. 1 on: jgaoirjg | ||
Väite no. 2 on: igaoierj | |||
[[Luokka:Komentorivi]] | [[Luokka:Komentorivi]] |
Versio 26. toukokuuta 2022 kello 21.13
Väite, argumentti tai parametri on ohjelmalle päätteessä annettu lisätieto siitä, kuinka ohjelman tulisi pyöriä.
Ota huomioon, että kaikki ohjelmat eivät käytä samoja väitteitä samoihin tarkoituksiin, joten voit tahattomasti vahingoittaa järjestelmääsi yrittäessäsi käyttää tuntemiasi väitteitä.
Antaminen
Kaikki ohjelmat eivät aina ota väitteitä.
$ true väite
Paksulla merkitty teksti on väite. true ei välitä väitteistä, joita käyttäjä sille antaa, joten sen käyttäytyminen ei muutu.
Jotkin ohjelmat eivät tarvitse väitteitä.
$ cat
cat ottaa muutaman väitteen, jos se niitä saa, mutta se ei tarvitse niitä toimiakseen. GNU-versio cat:ista ottaa muun muassa tämän:
$ cat --version
Tämä tulostaa näytölle versiotiedot.
cat (GNU coreutils) 8.30 Copyright © 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Kirjoittaneet Torbjorn Granlund ja Richard M. Stallman.
Jotkin ohjelmat vaativat väitteitä.
$ gcc gcc: fatal error: no input files compilation terminated. $ gcc ohjelma.c -o ohjelma [ei tulostetta]
Kuinka selvittää ohjelman väitteet?
Voit tarkistaa väitteet hakemalla netistä, katsomalla man-ohjelmalla ja usein väitteillä -h tai --help.
Ottaminen
C
C-kielellä väitteet menevät pääfunktiolle. Yksi on kokonaisluku ja toinen taulukko merkkijonoista. Näille voi periaatteessa antaa mitkä tahansa nimet, mutta tyypillisesti .
#include <stdio.h>
int main(int argc, char *argv[]) {
//argv sisältää väitteet, argc kertoo argv:n pituuden
//argv:n ensimmäinen solu sisältää ohjelman nimen
printf("Väitteittesi määrä on %i\n", argc);
for(int i=0; i<argc; ++i)
printf("Väite no. %i on: %s\n", i, argv[i]);
}
Jos käännät tuon ohjelman tiedostoon "väiteotto", nämä tulostukset syntyvät:
$ ./väiteotto Väitteittesi määrä on 1 Väite no. 0 on: ./väiteotto $ ./väiteotto jgaoirjg igaoierj Väitteittesi määrä on 3 Väite no. 0 on: ./väiteotto Väite no. 1 on: jgaoirjg Väite no. 2 on: igaoierj