GNU/Linux >> Linux Esercitazione >  >> Linux

Come ottengo il nome utente in un Makefile?

Bene, se vuoi quel file durante il runtime, ti consiglio di crearlo durante il runtime. Il Makefile viene considerato solo in fase di compilazione. Questo è ovviamente un problema se il programma viene compilato e poi eseguito da diversi utenti, alcuni dei quali potrebbero anche non esistere in fase di compilazione.

Durante il runtime puoi ottenere la home directory come mostrato qui (se stai usando C/C++). Quindi puoi verificare l'esistenza della cartella / file dei punteggi più alti e crearlo se necessario. Se vuoi un file dei punteggi migliori per tutti gli utenti, dovresti metterlo nella home directory di un utente speciale, ma piuttosto da qualche altra parte nel file system. Questo è fatto per esempio dal gioco xjump.

E riguardo al tuo Makefile, la variabile $USER viene tradotta in root a causa del sudo comando su

sudo make install

L'utente che esegue effettivamente make è il superutente:root.


Vuoi installare il tuo programma per tutti gli utenti? Quindi è meglio se crei /home/user/.game_name directory quando l'utente esegue il gioco, non quando root lo installa. Altrimenti, solo l'utente che chiama sudo make install avrà la sua lista dei punteggi migliori. Se hai un solo utente, non installarlo a livello di sistema, ma nella directory degli utenti.

Suggerisco di inizializzare i file degli utenti alla prima esecuzione del gioco. Quindi ogni utente, anche gli utenti che non esistevano quando il gioco è stato installato, può avere il proprio elenco dei punteggi migliori. Puoi aggiungere il codice di inizializzazione nel tuo gioco (c++, java o qualsiasi altra cosa) o semplicemente chiamare uno script esterno che lo faccia (non così elegante). Evitare di creare file relativi all'utente al momento dell'installazione.


Linux
  1. Come creare più account utente in Linux

  2. Come trovare tutti gli utenti Sudo in Linux

  3. Come elencare gli utenti in CentOS 7

  4. Linux:come ottenere in modo affidabile il nome del sistema operativo?

  5. Come posso ottenere in modo affidabile il nome del sistema operativo?

Come elencare gli utenti in Linux

Come ottenere la dimensione di una directory in Linux

Come ottenere il massimo da Qmmp 1.0

Come elencare tutti gli utenti in Linux

Come conoscere i gruppi di un utente Linux

Come ottenere il nome di dominio in Windows usando il comando?