Tips

Mac OS Xでカレントマシンオーナーのショートネームを取得する

日付2011/03/11
ID76229 (英語原文参照)
バージョンv12
プラットフォームMac/Win

4D 2004までのCurrent machine ownerコマンドは, Mac OS Xの短い名前(ホームディレクトリの名前)を返していました。4D v11 SQL以降, このコマンドはユーザーアカウントで設定されたカレントマシンオーナーのロングネームを返します。

以前のようにショートネームが調べたいのであれば, LAUNCH EXTERNAL PROCESSでコールできるUNIXコマンド"id"が便利です。カレントマシンオーナーのショートネームを取得するためのオプションは"-un"です。

If (True)
  If (False)
    //*****************************************************************************
    //
    // Current_Machine_UserID
    //
    // Purpose: To return the Mac OS X current users name. 
    //
    // From Terminal Man page: The "id" utility displays the user and group names
    // and numeric IDs, of the calling process, to the standard output. 
    // If the real and effective IDs are different, both are displayed, 
    // otherwise only the real ID is displayed.
    //
    // Option: -un Display the name of the user instead of the number.
    //
    // $0 - TEXT - current users name
    //
    //*****************************************************************************
  End if 
  C_TEXT($MethodName_T)
  $MethodName_T:=Current method name
    //===================== Declare Variables ==================================
    //method_parameters_declarations
  C_TEXT($0)
    //-----------------------------------------------------------------------------
    //method_wide_constants_declarations
    //-----------------------------------------------------------------------------
    //local_variable_declarations
  C_TEXT($In;$UserName_T)
End if 
   //====================== Initialize and Setup ================================

   //======================== Method Actions ==================================

LAUNCH EXTERNAL PROCESS("id -un";$In;$UserName_T)

   // The "whoami" utility has been obsoleted by the "id" utility, and is equivalent to "id -un".
   //
   //LAUNCH EXTERNAL PROCESS("whoami";$In;$UserName_T)

   // Because the Username is returned with an line ending character
   //
$UserName_T:=Substring($UserName_T;1;Length($UserName_T)-1)

   //======================== Clean up and Exit =================================

$0:=$UserName_T