1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
/** * File: args.c * Author: Risto Heinsar * Created: 10.11.2014 * Modified: 12.08.2024 * * Description: Program demonstrates accessing command line arguments * when passed during the execution of the program. * * Usage: ./program_name arg1 arg2 arg3 ... */ #include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { printf("Got %d command line arguments\n", argc); // Loops over all arguments as strings for (int i = 0; i < argc; i++) { printf("argv[%d] = %s\n", i, argv[i]); } printf("\n"); // Loop over the arguments once more for (int i = 0; i < argc; i++) { // Grab the length of the current argument int n = strlen(argv[i]); // Print the current argument, character by character for (int j = 0; j < n; j++) { printf("%c ", argv[i][j]); } printf("\n"); } return 0; } |
Mida jälgida:
- Main funktsiooni int main(int argc, char *argv[]) kuju tohib kasutada ainult siis, kui planeerid argumente vastu võtta
- Argumendi vektori kujud *argv[] ja **argv on samaväärsed. Kumba vormi kasutada otsustab enamasti arendaja.
- argc ütleb mitu argumenti programmi käivitades programmile anti. See on ka ühtlasi argv esimese dimensiooni pikkus.
- argc väärtus on 1, kui programmi käivitamisel ühtegi argumenti ei antud. Muutuja väärtus saab ühest suuremaks kui programmi käivitamisel antakse sellele kaasa argumendid.
- argv on argumentide vektor, mis sisaldab kõiki käsurealt kaasa antud argumente. Tegu on viitade massiiviga sõnedele.
- argv[0] sisaldab käivitatud programmi nime (ja kuidas see käivitati).
- argv[i] sisaldab i-ndat argumenti sõnena. Näiteks argv[1] sisaldab esimest argumenti.
- Kõik argumendid edastatakse sõnedena! Isegi need, mis sisaldavad vaid numbreid.