GNU/Linux >> Linux の 問題 >  >> Linux

Makefile でユーザー名を取得するにはどうすればよいですか?

実行時にそのファイルが必要な場合は、実行時に作成することをお勧めします。 Makefile は、コンパイル時にのみ考慮されます。プログラムがコンパイルされ、別のユーザーによって実行された場合、これは明らかに問題であり、コンパイル時に存在しないユーザーもいます。

実行時に、ここに示すようにホーム ディレクトリを取得できます (C/C++ を使用している場合)。次に、ハイスコア フォルダー/ファイルの存在を確認し、必要に応じて作成できます。すべてのユーザーのハイスコア ファイルが必要な場合は、それを特別なユーザーのホーム ディレクトリに配置する必要がありますが、ファイル システムの別の場所に配置する必要があります。これは、たとえばゲーム xjump によって行われます。

Makefile については、sudo のために $USER 変数がルートに変換されます。 コマンド

<ブロック引用>

sudo make install

実際に make を実行しているユーザーは、スーパーユーザーである root です。


すべてのユーザーにプログラムをインストールしますか?したがって、/home/user/.game_name を作成したほうがよいでしょう root がゲームをインストールするときではなく、ユーザーがゲームを実行するときのディレクトリ。それ以外の場合は、sudo make install を呼び出したユーザーのみ ハイスコ​​アリストが表示されます。ユーザーが 1 人しかいない場合は、システム全体ではなく、ユーザー ディレクトリにインストールしてください。

users ファイルを初期化することをお勧めします ゲームの最初の実行時。したがって、すべてのユーザーは、ゲームがインストールされたときに存在していなかったユーザーも含めて、ハイスコア リストを持つことができます。初期化コードをゲームに追加するか (C++、Java など)、それを実行する外部スクリプトを呼び出すことができます (あまりエレガントではありません)。インストール時にユーザー関連のファイルを作成しないでください。


Linux
  1. Linuxで複数のユーザーアカウントを作成する方法

  2. LinuxですべてのSudoユーザーを見つける方法

  3. CentOS7でユーザーを一覧表示する方法

  1. Kshのバージョンを安全に入手する方法は?

  2. 現在のモニター解像度またはモニター名 (LVDS、VGA1 など) を取得する方法

  3. オペレーティング システムの名前を確実に取得するにはどうすればよいですか?

  1. Linux –オペレーティングシステムの名前を確実に取得するにはどうすればよいですか?

  2. 方法:FreeBSDユーザー管理

  3. コンピューター名 (ホスト名ではない) を取得するには?