Questo probabilmente è il mio primo programma fatto con libgnokii, il file è datato 2005-07-16 19:30:17.
L'utilità è abbastanza limitata: serve per visualizzare il codice numerico di una rete cellulare formato da MCC e MNC

, dove MCC (Mobile Country Code) è un numero di tre cifre che indica una nazione e MNC (Mobile Network Code) è un numero di due cifre che indica un operatore GSM.
Gli argomenti da fornire sulla riga di comando sono il nome di un operatore e opzionalmente il nome inglese di una nazione (Italy è il nome predefinito, se permetti) ignorando la differenza tra maiuscole e minuscole.
La lista degli operatori italiani presenti nel file common/gsm-networks.c,v 1.43 2006/06/11 16:39:48 va integrata perché ci sono solo:
"Telecom Italia Mobile"
"vodafone"
"Wind Telecomunicazioni SpA"
Edit: in realtà era presente anche "H3G", ora ho aggiunto "Blu SpA", anche se non esiste più, è nella lista dei "forbidden networks" della mia vecchia SIM.

Esempio:

$ network_code foo
foo Italy (undefined)
$ network_code vodafone italy
vodafone italy (222 10)
$ network_code vodafone germany
vodafone germany (262 02)

Questo è il programmino (manca un return 0; alla fine...):

// gcc -I include/ network_code.c -o network_code
// Daniele Forsi
//
#include "common/gsm-networks.c"

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

        if ( argc == 2 ) {
                country = "Italy";
        } else if ( argc == 3 ) {
                country = argv[ 2 ];
        } else {
                printf( "Usage: %s network_code [country_name]\n", argv[0]);
                exit( 1 );
        }

        code = gn_network_code_find(argv[1],country);
        if ( code ) {
                printf("%s %s (%s)\n", argv[1], country, code );
        } else {
                printf("Not found %s %s \n", argv[1],country);
        }
}