GNU/Linux >> Znalost Linux >  >> Linux

Jak získám uživatelské jméno v souboru Makefile?

Pokud chcete tento soubor za běhu, doporučil bych vám ho vytvořit za běhu. Makefile se bere v úvahu pouze během kompilace. To je zjevně problém, pokud je program zkompilován a následně spouštěn různými uživateli, z nichž někteří v době kompilace ani nemusí existovat.

Během běhu můžete získat domovský adresář, jak je znázorněno zde (pokud používáte C/C++). Poté můžete zkontrolovat existenci složky/souboru s nejvyšším skóre a v případě potřeby jej vytvořit. Pokud chcete soubor s nejvyšším skóre pro všechny uživatele, měli byste ho umístit do domovského adresáře speciálního uživatele, ale raději někam jinam do systému souborů. To dělá například hra xjump.

A pokud jde o váš soubor Makefile, proměnná $USER je přeložena do kořenového adresáře kvůli sudo příkaz na

sudo make install

Uživatel, který ve skutečnosti používá make, je superuživatel:root.


Chcete nainstalovat svůj program pro všechny uživatele? Je tedy lepší, když si vytvoříte /home/user/.název_hry adresář, když uživatel spustí hru, ne když ji nainstaluje root. Jinak pouze uživatel, který volá sudo make install bude mít svůj seznam nejlepších skóre. Pokud máte pouze jednoho uživatele, neinstalujte jej v rámci celého systému, ale do uživatelského adresáře.

Navrhuji inicializovat soubory uživatelů při prvním spuštění hry. Takže každý uživatel, dokonce i uživatelé, kteří v době instalace hry neexistovali, mohou mít svůj seznam nejlepších. Můžete přidat inicializační kód do své hry (c++, java nebo cokoliv jiného) nebo jen zavolat externí skript, který to udělá (není tak elegantní). Vyhněte se vytváření souborů souvisejících s uživatelem během instalace.


Linux
  1. Jak bezpečně získat verzi Ksh?

  2. Jak na to:Správa uživatelů FreeBSD

  3. Jak získat aktuální rozlišení monitoru nebo název monitoru (LVDS, VGA1 atd.)

  1. Jak mohu spolehlivě získat název operačního systému?

  2. Jak získat název počítače (ne jeho název hostitele)?

  3. Jak získat uživatelské jméno z uid

  1. Jak vytvořit více uživatelských účtů v Linuxu

  2. Jak najít všechny uživatele Sudo v Linuxu

  3. Jak vytvořit seznam uživatelů v CentOS 7