Kirjoittaja Aihe: C-kielen kielletyt komentoriviargumentit  (Luettu 2339 kertaa)

Mistofelees

  • Käyttäjä
  • Viestejä: 656
    • Profiili
C-kielen kielletyt komentoriviargumentit
« : 18.11.21 - klo:15.12 »

En löydä mistään tietoa C:n kielletyista komentoriviargumenteista.
'$' argumentin ensimmäisenä merkkinä ei toimi.
Jos '$' on keskellä sanaa, se ja loppusana katoavat

Onko joku temppu, jolla C:n saisi hyväksymään dollarimerkin komentorivillä ?
'$GPRMC ' on selkeämpi parametri, kuin 'GPRMC'

« Viimeksi muokattu: 18.11.21 - klo:15.27 kirjoittanut Mistofelees »

kamara

  • Käyttäjä
  • Viestejä: 3028
    • Profiili
Vs: C-kielen kielletyt komentoriviargumentit
« Vastaus #1 : 18.11.21 - klo:17.38 »
Se johtuu bash:sta, joka tulkitsee $:lla alkavat merkit ympäristömuuttujaksi.

Sen saa kierrettyä:
Koodia: [Valitse]
#include <stdio.h>
#include <string.h>

int main (int argc,char **args)
{
  if (argc>1) printf("%s\n",args[1]);
}

Koodia: [Valitse]
g++ argtest.c -o argtest

Sitten päätteessä:
Koodia: [Valitse]
./argtest 'koe$koe'

tai

Koodia: [Valitse]
./argtest koe\$koe

eikä siis näin...
Koodia: [Valitse]
./argtest koe$koe

Edit -
Koodia: [Valitse]
./argtest koe$HOME
« Viimeksi muokattu: 18.11.21 - klo:17.46 kirjoittanut kamara »

Mistofelees

  • Käyttäjä
  • Viestejä: 656
    • Profiili
Vs: C-kielen kielletyt komentoriviargumentit
« Vastaus #2 : 21.11.21 - klo:12.23 »
Kiitos !

Bash on niin täynnä omituisia koukeroita, että olen usein toivonut, että m$ ja *n?x olisivat ottaneet komentotulkiksi  Basic:n.
TAI että olisin itse ottanut aikojen alussa csh:n käyttöön.
Nyt ei viitsisi enää vaihtaa, koska servereillä ja pöytäkoneissa on jo satoja bash:lla kirjoitettuja scriptejä.