名称
ctermid() ― ターミナルに対するファイル名の生成
構文
#include <stdio.h>
char *ctermid(char *s);
説明
ctermid() はパス名として使われた場合に、カレントプロセスの制御ターミナルを参照する文字列を生成します。
s が NULL ポインターのとき、文字列は内部静的領域に保存され、次に ctermid() が呼び出されたときにこの領域の内容がオーバーライトされ、アドレスが返されます。それ以外のときは、 s は最小の L_ctermid エレメントの文字配列を指すと見なされます。パス名はこの配列内に配置され s の値が返されます。定数 L_ctermid は <stdio.h> ヘッダーファイル内に定義されています。
プロセスは制御ターミナルを持たない場合は、制御ターミナルに対するパス名が決定されないか、エラーが発生します。 ctermid() は空の文字列を返します。
マルチスレッドアプリケーションでは、 s が NULL ポインターの場合、操作は実行されず、 NULL
ポインターが返されます。
注記
ctermid() と ttyname() の違いは、 ttyname() がファイル記述子を受け取って、そのファイル記述子に関連するターミナルの実名を返すのに対して、 ctermid() はファイル名として使われた場合にターミナルを参照する文字列
(/dev/tty) を返すという点です ttyname(3C) 参照)。したがって ttyname() は、プロセスがすでに最低ひとつのファイルをターミナルに対して開いているときだけ正常に使用できます。
参照
ttyname(3C), thread_safety(5)
標準準拠
ctermid(): AES, SVID2, SVID3, XPG2, XPG3,
XPG4, FIPS 151-2, POSIX.1