GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtengo el nombre de usuario en un Makefile?

Bueno, si desea ese archivo durante el tiempo de ejecución, le recomiendo que lo cree durante el tiempo de ejecución. El Makefile se considera solo durante el tiempo de compilación. Obviamente, esto es un problema si el programa es compilado y luego ejecutado por diferentes usuarios, algunos de los cuales pueden no existir en el momento de la compilación.

Durante el tiempo de ejecución, puede obtener el directorio de inicio como se muestra aquí (si está utilizando C/C++). Luego puede verificar la existencia de la carpeta/archivo de puntaje más alto y crearlo si es necesario. Si desea un archivo de puntuación más alta para todos los usuarios, debe colocarlo en el directorio de inicio de un usuario especial, pero en otro lugar del sistema de archivos. Esto lo hace, por ejemplo, el juego xjump.

Y sobre su Makefile, la variable $USER se traduce a root debido a sudo comando en

sudo hacer instalar

El usuario que realmente ejecuta make es el superusuario:root.


¿Quieres instalar tu programa para todos los usuarios? Así que es mejor si creas el /home/user/.game_name directorio cuando el usuario ejecuta el juego, no cuando root lo instala. De lo contrario, solo el usuario que llama sudo make install tendrá su lista de puntuaciones más altas. Si solo tiene un usuario, no lo instale en todo el sistema, sino en el directorio de usuarios.

Sugiero inicializar archivos de usuarios en la primera ejecución del juego. Así que todos los usuarios, incluso los usuarios que no existían cuando se instaló el juego, pueden tener su lista de puntuaciones más altas. Puede agregar el código de inicialización en su juego (c ++, java o cualquier otro) o simplemente llamar a un script externo que lo haga (no tan elegante). Evite crear archivos relacionados con el usuario en el momento de la instalación.


Linux
  1. Linux:¿cómo obtener de manera confiable el nombre del sistema operativo?

  2. Cómo obtener la resolución del monitor actual o el nombre del monitor (LVDS, VGA1, etc.)

  3. ¿Cómo puedo obtener de forma fiable el nombre del sistema operativo?

  4. ¿Cómo obtener el nombre de la computadora (no su nombre de host)?

  5. Cómo obtener el nombre de usuario de uid

Cómo listar usuarios en Linux

Cómo obtener el tamaño de un directorio en Linux

Cómo aprovechar al máximo Qmmp 1.0

Cómo enumerar todos los usuarios en Linux

Cómo saber los grupos de un usuario de Linux

¿Cómo obtener el nombre de dominio en Windows usando el comando?