システムとの相互作用 †
システム †
System †
- Environments[]は、すべての環境変数を含むList {"name=val", ...}を返します。
- GetEnv[name_String]は、環境変数nameの値を返します。環境変数nameが存在しない場合は、長さ0のString ""を返します。
- SetEnv[name_String, val_String]は、環境変数nameに値valを設定します。設定に失敗した場合は、メッセージSystem::errorを発生します。
- UnsetEnv[name_String]は、環境変数nameを削除します。
Environment †
- Environment[name_String]は、GetEnv[name]と同値です。
- Environment[name_String, val_String]は、SetEnv[name, val]と同値です。
- Environment[name_String] = val_String;は、SetEnv[name, val]と同値です。
GetDirectory †
- GetDirectory[]は、現在の作業ディレクトリの絶対パス名を返します。
SetDirectory †
- SetDirectory[dirname_String]は、作業ディレクトリをdirnameに設定し、その絶対パスを返します。
Directory †
- Directory[]は、GetDirectory[]と同値です。
- Directory[dirname_String]は、SetDirectory[dirname]と同値です。
- Directory[] = dirname_String;は、SetDirectory[dirname]と同値です。
HomeDirectory †
- HomeDirectory[] はホーム・ディレクトリ名を返します。
GetPID †
- GetPID[] は SAD のプロセスID番号を返します。
GetPPID †
- GetPPID[] は SAD の親プロセスのプロセスID番号を返します。
GetUID †
- GetUID[] は SAD の実ユーザID番号を返します。
GetEUID †
- GetEUID[] は SAD の実効ユーザID番号を返します。
GetGID †
- GetUID[] は SAD の実グループID番号を返します。
GetEGID †
- GetEUID[] は SAD の実効グループID番号を返します。
ProcessStatus †
TemporaryName †
- TemporaryName[] はシステムが作るテンポラリファイルの名前を返します。
- TemporaryName[]が生成する一時ファイル名は安全では有りません。MkSecureTemp[]を用いることを推奨します。
- MkSecureTemp[]は、安全で一意な一時ファイルを作成し、一時ファイルのパス名を返します。
- RealPath[path_String]は、パス名pathの先頭の~キャラクタ、すべてのシンボリックリンク、余分な/キャラクタ、/./と/.../のリファレンスを分析し、絶対パスを返します。分析に失敗した場合は、$Failedシンボルを返します。
プロセス制御 †
Pause †
- Pause[秒] は指定された秒数だけプログラムの実行を休止します。
- 1 秒以下の指定も可能です。
- Sleepと Pause は同値です。
Fork †
- Fork[] は実行中のプロセスのコピーを作り、サブプロセスとして実行します。
- Fork[] は親のプロセスには子のプロセスのプロセス番号を返し、子のプロセスには 0 を返します。
Wait †
- Wait[] はサブプロセスの実行終了を待ちます。
- Wait[] は {サブプロセス番号, 終了コード} というリストを返します。サブプロセスが正常終了したときは終了コードは 0 です。
- Wait4[]は、特定の子プロセスを待つ必要があり、子プロセスが蓄積したリソース利用統計あるいはオプションを必要とするプログラムのために、一般的なインタフェースを提供します。
- Execve[path_String, {argv_String}, envlist_List]は、呼び出しプロセスを実行可能なファイルpathによる新しいプロセスに変換します。新しいプロセスは、引数argvと envlistに{"name=val", ...}の形式で指定された環境変数を持ちます。また、新しいプロセスへの変換が失敗した場合は、メッセージSystem::errorを発生します。
- Execve[]へのフロントエンドとして Execvpe[]を実装しました。
- Execvp[file_, {argv___}, options___]はは、 execvp(3)相当でファイル名と引数列を渡すと 必要ならPATH変数で指定された検索パスから外部コマンドを 探し出し、現状の環
境変数を引き継いで Execve[]します。
- Execve[]へのフロントエンドとしてExecvp[]を実装しました。
- Execvpe[file_, {argv___}, {env___}, options___]は、 Execvp[]に環境envを渡せるようにしたものです。
時刻関数 †
Date †
- Date[] はその時点の時刻を {年, 月, 日, 時, 分, 秒} のリストで返します。
DateString †
- DateString は呼ばれたときの時刻を文字列にして返します。
In[1]:= DateString[]
Out[1]:= "10/19/2007 21:39:44"
また、DateString[date]はdateの時刻を文字列にして返します。
但し、dateの値は1900年1月1日0時0分0秒をdate=0として秒で表すか、
あるいは{yyyy,mm,dd,hh,mm,ss}のリスト表記にする必要があります。
In[2]:= date=1E9
Out[2]:= 1000000000
In[3]:= DateString[date]
Out[3]:= "09/10/1931 01:46:40"
In[4]:= date={2008,1,1,0,0,0}
Out[4]:= {2008,1,1,0,0,0}
In[5]:= DateString[date]
Out[5]:= "01/01/2008 00:00:00"
Day †
- Day[] はその時点の曜日名を返します。
- Day[{年, 月, 日}] はその日付の曜日名を返します。
- Day[{年, 月, 日, 時, 分, 秒}] はその日付の曜日名を返します。
FromDate †
- FromDate[{年, 月, 日, 時, 分, 秒}] はリスト表示の時刻の、1900年 1 月 1 日 0 時 0 分 0 秒から計った経過時間を秒単位の数値で返します。
FromDateString †
- FromDateString["MM/DD/YYYY hh:mm:ss.tick"]は文字列表示の時刻を、1900年 1 月 1 日 0 時 0 分 0 秒から計った経過時間を秒単位の数値で返します。
ToDate †
- ToDate[秒] は1900 年 1 月 1 日 0 時 0 分 0 秒から計った秒単位の経過時間を{年, 月, 日, 時, 分, 秒}のリストに直して返します。
ToDateString †
- ToDateString[]はDateString[]の別名です。
TimeUsed †
- TimeUsed[] はそのSAD セッションが消費した CPU 時間を秒単位で返します。
Timing †
- Timing[式1] は 式1 を評価し、{式1の結果, {消費したCPU時間 (秒)}} というリストを返します。
Memory †
MemoryCheck †
OpenShared †
Allocated shared memory of n bytes.
s = OpenShared[n] ,
where s is to be used by Shared function.
Shared †
Read/Write to the shared memory.
Shared[s]
Shared[s] = x
Shared[s] := x
where s is given by OpenShared, and x is Real, built-in function,
String, or list of them.
SharedSize †
Returns the size of an object for OpenShared.
n = SharedSize[x]