Solaris 移行ガイド

付録 B システムコールリファレンス

この付録では、表形式ですべての SunOS 4.x を示し、Solaris 7、ABI、SVID、SVR4、および SunOS/BSD ソース互換パッケージのそれぞれの環境での利用方法の違いを示します。

リファレンスの使い方

SunOS 4.x には、System V 互換バージョンの多くのコマンド、システムコール、およびルーチンを提供する System V のインストールオプションがあります。System V インタフェースはこのあとに続く表に一覧表示されています。SunOS 4.x インタフェースの System V バージョンを指す場合には、「SysV」とインタフェースの横に示してあります。

すべての Solaris 7 インタフェースに関する詳細な情報については、『SunOS Reference Manual』のセクション 2「System Calls」を参照してください。


注 -

システムコールは関数です。この付録では、関数名のすぐ後に空の()をつけて関数を識別しています。数字を入れた()がさらに続く場合、これは関連するマニュアルページのセクションを示します。


以下の表にエントリの例と、その説明を示します。

SunOS 4.x システムコール 

SunOS 5.6  

利用可能な代替システムコールと注 

ABI 

SVID 

SVR4 

BSD 

mctl()(2)

memcntl()(2) が同様の機能を提供する。

mctl() システムコールは、ABI、SVID、SVR4、および SunOS 5.6 では利用できません。memcntl() コールを使用するには、このシステムコールを使用するアプリケーションをすべて書き直さなければなりません。mctl() は SunOS/BSD 互換パッケージで利用できますが、使用するアプリケーションは他の SVR4 システムと互換性がありません。

SunOS 4.x システムコール 

SunOS 5.6  

利用可能な代替システムコールと注 

ABI 

SVID 

SVR4 

BSD 

getsockname()(2)

S# 

SunOS 4.x の getsockname() が使用する errnoENOBUFS は、SVR4 と SunOS 5.6 では ENOSR に変更された。

S# 

getsockname() システムコールは、ABI または SVID では定義されていません。SunOS 5.6 と SVR4 における getsockname() は SunOS 4.x のものと同じですが、SunOS 4.x ではエラー条件について errnoENOBUFS に設定していたのに対し、SunOS 5.6 では errnoENOSR に設定するという点が異なります。

システムコールのリファレンス (A, B, C, D, E, F, G)

表 B-1

SunOS 4.x システムコール 

SunOS 5.6  

注 

ABI 

SVID 

SVR4 

BSD 

accept()(2)

現在は accept()(3N)

access()(2V) -SysV

 

acct() (2)

C# 

シンボリック名、ACOMPATACOREAXSIG は、SunOS 4.x の (<sys/acct.h> に定義されている) acct 構造体メンバ ac_flag には有効だが、SunOS 5.6、ABI、SVID、SVR4 では無効。また、アカウンティング記録のフォーマットも、SunOS 4.x と、SunOS 5.6、ABI、SVID、SVR4 との間で異なる。

C# 

C# 

C# 

adjtime()(2)

 

async_daemon()(2)

 

audit()(2)

 

auditon() (2)

 

auditsvc()(2)

 

bind()(2)

現在は bind()(3N)

brk()(2)

 

chdir() (2V) -SysV

 

chmod()(2V) -SysV

C# 

シンボリックアクセスモード (<sys/stat.h>)、S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は SunOS 4.x の chmod() によってサポートさ5.6、ABI、SVID、SVR4 ではサポートされない。

ただし、同等の SunOS 5.6、または ABI、SVID、SVR4 のシンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) は同じ定義を持ち、SunOS 4.x の <sys/stat.h> でも定義されているので使用できる。

C# 

C# 

C# 

chown() (2V)

SunOS 4.x では、chown()owner および group 引数は int 型になる。SunOS 5.6、ABI、SVID、SVR4 では、owneruid_t 型、groupgid_t 型になる。

SunOS 4.x では、path の最後の指定がシンボリックリンクならば、シンボリックリンクの所有権は変更された。SunOS 5.6 では、chown() はシンボリックリンクによって参照されるファイルまたはディレクトリの所有権を変更する。シンボリックリンクの所有権を変更するには SunOS 5.6 の lchown()(2) を使用する。

chown()(2V) -SysV

 

chroot()(2)

 

close()(2V) -SysV

 

connect()(2)

S# 

現在はconnect()(3N)

S# 

creat()(2V)

C# 

SunOS 4.x では、creat()mode 引数は int 型で、SunOS 5.6、ABI、SVID、SVR4 では、mode 引数は mode_t 型。また、SunOS 5.6、ABI、SVID、SVR4 では <fcntl.h> に含まれるが、SunOS 4.x では含まれない。シンボリックアクセスモード (<sys/stat.h>)、S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は SunOS 4.x の creat() によってサポートされるが、 SunOS 5.6、ABI、SVID、SVR4 ではサポートされない。

ただし、同等の SunOS 5.6、または ABI、SVID、SVR4 のシンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) は同じ定義を持ち、SunOS 4.x の <sys/stat.h> でも定義されているので使用できる。errno フラグの ENXIO、EOPNOTSUPP は、SunOS 4.x の chmod 関数には有効だが、SunOS 5.6、ABI、SVID、SVR4 では無効。

C# 

C# 

C# 

creat()(2V) -SysV

C# 

シンボリックアクセスモード (<sys/stat.h>)、S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は SunOS 4.x の creat() によってサポートされるが、SunOS 5.6、ABI、SVID、SVR4 ではサポートされない。ただし、同等の SunOS 5.6、または ABI、SVID、SVR4 のシンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) は同じ定義を持ち、SunOS 4.x の <sys/stat.h> でも定義されているので使用できる。errno フラグの ENXIOEOPNOTSUPP は、SunOS 4.x の chmod 関数には有効だが、SunOS 5.6、ABI、SVID、SVR4 では無効。

C# 

C# 

C# 

dup()(2V) -SysV

 

dup2()(2V) -SysV

現在は dup2()(3C)

_exit()(2V) -SysV

 

execve()(2V) -SysV

 

fchdir()(2V) -SysV

 

fchmod()(2V) -SysV

シンボリックアクセスモード (<sys/stat.h>) の S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は SunOS 4.x の fchmod() によりサポートされるが、SunOS 5.6、ABI、SVID、SVR4 ではサポートされない。ただし、同等5.6、または ABI、SVID、SVR4 のシンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) は同じ定義を持ち、SunOS 4.x の <sys/stat.h> でも定義されているので使用できる。

fchown()(2)

 

fchroot()(2)

 

fcntl()(2V) -SysV

SunOS 4.x では、フラグ -O_APPEND-O_SYNC-O_NDELAY、また、<sys/file.h> に定義があるフラグ -FASYNC-FNDELAY-FNBIOF_SETFL コマンドで有効となる。SunOS 5.6、ABI、SVID、SVR4 はフラグ -O_APPEND-O_SYNC-O_NDELAY、および -O_NONBLOCK のみサポートする。-O_SYNC-FASYNC の代わりに使用できる。-O_NONBLOCK-FNDELAY-FNBIO の代わりに使用できる。また、-O_NONBLOCK-O_NDELAY の代わりに使用できる。-O_NDELAY は削除されている。SunOS 4.x の F_GETOWN および F_SETOWN コマンドは SunOS 5.6、ABI、SVID、SVR4 ではサポートされない。

flock()(2)

 

fork()(2V)

SunOS 4.x では、fork()int 型の値を返す。 SunOS 5.6、ABI、SVID、SVR4 では、fork()pid_t 型の値を返す。また、SunOS 5.6、ABI、SVID、SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

fork()(2V) -SysV

 

fpathconf()(2V) -SysV

 

fstat()(2V) -SysV

 

fstatfs()(2)

fstatvfs()(2) に同等の機能がある。

fsync()(2)

 

ftruncate()(2)

現在はftruncate()(3C)

getauid()(2)

 

getdents()(2)

 

getdirentries()(2)

getdents()(2) に同等の機能がある。

getdomainname()(2)

sysinfo()(2) に同等の機能がある。

getdtablesize()(2)

現在は getdtablesize()(3C)getrlimit()resource 引数を RLIMIT_NOFILE に設定すると同様の機能が使用できる。

getegid()(2V)

SunOS 4.x では、getegid()int 型の値を返す。SunOS 5.6、ABI、SVID、SVR4 では、getegid()gid_t 型の値を返す。また、SunOS 5.6、ABI、SVID、SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

getegid()(2V) -SysV

 

geteuid()(2V)

SunOS 4.x では、geteuid()int 型の値を返す。SunOS 5.6、ABI、SVID、SVR4 では、geteuid()uid_t 型の値を返す。また、SunOS 5.6、ABI、SVID、SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

geteuid()(2V) -SysV

 

getgid()(2V)

SunOS 4.x では、getgid()int 型の値を返す。SunOS 5.6、ABI、SVID、SVR4 では、getgid()gid_t 型の値を返す。また、SunOS 5.6、ABI、SVID、SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

getgid()(2V) -SysV

 

getgroups()(2V)

SunOS 4.x では、 getgroups()gidset 引数は int 型で、SunOS 5.6、ABI、SVID、SVR4 では grouplist 引数は gid_t 型である。また、SunOS 5.6、ABI、SVID、SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

getgroups()(2V) -SysV

 

gethostid() (2)

現在は gethostid()(3C)sysinfo()(2)command 引数を SI_HW_SERIAL に設定すると同様の機能を使用できる。

gethostname()(2)

現在は gethostname()(3C)sysinfo() (SI_HOSTNAME, name, namelen) ルーチンが同様の機能を提供する。

getitimer()(2)

 

getmsg()(2)

 

getpagesize()(2)

現在は getpagesize()(3C)sysconf()(3C) が同様の機能を提供する。

getpeername()(2)

S# 

現在は getpeername()(3N)errno フラグの ENOBUFS は SunOS 4.x の getpeername() には有効だが、SVR4 と SunOS 5.6 では無効。

S# 

getpgid()(2V)

 

getpgrp()(2V)

SunOS 4.x の getpgrp() には引数 pid があり、getpgrp()pid によって示されるプロセスのプロセスグループを返す。getpgrp() の SunOS 5.6、ABI、SVID、SVR4 は引数を受け付けず、getpgrp() は呼び出し元のプロセスグループ ID を返す。また、SunOS 4.x getpgrp()int 型の値を返すが、SunOS 5.6、ABI、SVID、または SVR4 の getpgrp()pid_t 型の値を返す。SunOS 5.6、ABI、SVID、および SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

getpgrp()(2V) -SysV

 

getpid()(2V)

SunOS 4.x では、getpid()int 型の値を返す。 SunOS 5.6、ABI、SVID、または SVR4 では、getpid()pid_t 型の値を返す。また、SunOS 5.6、ABI、SVID、および SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

getpid()(2V) -SysV

 

getppid()(2V)

SunOS 4.x では、getppid()int 型の値を5.6、ABI、SVID、または SVR4 では、getppid()pid_t 型の値を返す。また、ABI、SVID、SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

getppid()(2V) -SysV

 

getpriority()(2)

現在は getpriority()(3C)priocntl()(2) が同様の機能を提供する。

getrlimit()(2)

RLIMIT_RSS は SunOS 4.x でサポートされているリソースの 1 つで (プロセスの常駐セットサイズが増大できるバイト単位の最大サイズ)、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされていない。SunOS 5.6、ABI、SVID、または SVR4 では、さらに RLIMIT_AS リソース、つまりバイト単位で定義されるプロセスのアドレス空間の最大サイズもサポートする。また、SunOS 5.6、ABI、SVID、または SVR4 での、rlimit 構造体にある rlim_cur (現在のソフト限界) および rlim_max (ハード限界) フィールドは、SunOS 4.x では int 型ではなく rlim_t 型である。

getrusage()(2)

現在は getusage()(3C)

getsockname()(2)

S# 

SunOS 4.x の getsockname() が使用する errnoENOBUFS は、SVR4 と SunOS 5.6 では ENOSR に変更された。

S# 

getsockopt()(2)

現在は getsockopt()(3N)

gettimeofday()(2)

現在は gettimeofda()y()(3C)

getuid()(2V)

SunOS 4.x では、getuid()int 型の値を返す。SunOS 5.6、ABI、SVID、または SVR4 では、getuid() は type uid_t の値を返す。また、SunOS 5.6、ABI、SVID、および SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

getuid()(2V) -SysV

 

システムコールのリファレンス (I, K, L, M, O, P, Q)

表 B-2

SunOS 4.x システムコール 

SunOS 5.6  

注 

ABI 

SVID 

SVR4 

BSD 

ioctl()(2)

ioctl() 要求」ioctl() 要求を参照のこと。

kill()(2V)

SunOS 4.x では、プロセスのグループにシグナルが送られ (同様に、pid が 0 または負であれば)、そしてシグナルを送るプロセスがそのグループのメンバであれば、そのシグナルは送り元のプロセスには送られない。SunOS 5.6、ABI、SVID、または SVR4 では、シグナルは送り元のプロセスにも送られる。SunOS 4.x では、pid 引数は int 型で、SunOS 5.6、ABI、SVID、または SVR4 では、pid 引数は pid_t 型である。また、SunOS 5.6、ABI、SVID、SVR4 では <sys/types.h> に含まれるが、SunOS 4.x では含まれない。

kill()(2V) -SysV

 

killpg()(2)

現在では killpg()(3C)kill()(2) が同様の機能を提供する。killpg()(pgrp, sig) を kill()(-pgrp, sig) に置き換える。

 

link()(2V) -SysV

SunOS 5.6、ABI、SVID、または SVR4 の link() では、最初の引数の最後の部分がシンボリックリンクならば、リンクをたどらず、シンボリックリンクへのハードリンクが作成される。

listen()(2)

現在は listen()(3N)

lseek()(2V) -SysV

 

lstat()(2V) -SysV

 

mctl()(2)

memcntl()(2) が同様の機能を提供する。

mincore()(2)

SunOS 4.x では、引数 lenint 型で、SVR4 と SunOS 5.6 では、引数 len は、unsigned int 型となるように定義される size_t 型である。また、SunOS 5.6 では <unistd.h> をインクルードする必要がある。

mkdir()(2V)

SunOS 4.x では、モード引数は int 型で、SunOS 5.6、ABI、SVID、または SVR4 ではモード引数は mode_t 型である。また、SunOS 5.6、あるいは ABI、SVID、SVR4 では <sys/types.h><sys/stat.h> に含まれるが、SunOS 4.x では含まれない。

シンボリックアクセスモード (<sys/stat.h>) の S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は SunOS 4.x の mkdir() によってサポートされるが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。ただし、同等の SunOS 5.6、ABI、SVID、および SVR4 のシンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) には同じ定義があり、SunOS 4.x の <sys/stat.h> にも定義があるため、使用することができる。

mkdir()(2V) -SysV

シンボリックアクセスモード (<sys/stat.h>) の S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は SunOS 4.x の mkdir() によってサポートされるが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。ただし、同等の SunOS 5.6、ABI、SVID、および SVR4 のシンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) には同じ定義があり、SunOS 4.x の <sys/stat.h> にも定義があるため、使用することができる。

mkfifo()(2V) -SysV

現在は mkfifo()(3C)

mknod()(2V) -SysV

mknod()mode 引数は、SunOS 4.x では int 型で、SunOS 5.6、ABI、SVID、または SVR4 では mode_t 型である。dev 引数は、SunOS 4.x では int 型で、 SunOS 5.6、ABI、SVID、または SVR4 では dev_t 型である。シンボリックアクセスモード (<sys/stat.h>) の S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は、SunOS 4.x の mknod() によってサポートされるが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。ただし、同等の SunOS 5.6、ABI、SVID、または SVR4 のシンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) には同じ定義があり、SunOS 4.x の <sys/stat.h> にも定義があるため、使用することができる。

mmap()(2)

SunOS 4.x では、-mmap フラグオプションの値に、<sys/mman.h> で定義されている MAP_TYPE が含まれており、この MAP_TYPE は SunOS 5.6、ABI、SVID、または SVR4 の <sys/mman.h> では定義されていない。

mount()(2)

C# 

SunOS 4.x の mount() と、SunOS 5.6、ABI、SVID、SVR4 の mount() は、多くの点で互換性がない。SunOS 4.x の最初の引数 type はファイルシステム形式の名前だが、SunOS 5.6、ABI、SVID、または SVR4 では、最初の引数は fs であり、ファイルシステムの名前である。SunOS 5.6、ABI、SVID、または SVR4 では、ファイルシステム形式の名前 fstype は、mount() の第 4 引数となる。SunOS 4.x では、形式に固有な引数を渡すのに 1 つのパラメータ (第 4 の引数である caddr_t data) を使用するが、SunOS 5.6、ABI、SVID、または SVR4 では 2 つのパラメータを使用する (5 と 6、つまり const char *dataptrint datalen)。また、SunOS 5.6、ABI、SVID、SVR4 では <sys/mount.h> の前にある <sys/types.h> に含まれるが、SunOS 4.x では含まれない。

SunOS 4.x の <sys/mount.h> は、SunOS 5.6、ABI、SVID、または SVR4 の <sys/mount.h> で定義されない mount() flags 引数 (M_NEWTYPE, M_RDONLY, M_NOSUID, M_NEWTYPE, M_GRPID, M_REMOUNT , M_NOSUB, M_MULTI) に対するシンボリック定数を定義する。かわりに、M_RDONLYMS_RDONLY に、M_NOSUIDMS_NOSUID に、M_REMOUNTMS_REMOUNT に置き換える必要がある。M_NEWTYPE フラグは、SunOS 4.x の mount() に固有であり、SunOS 5.6、ABI、SVID、または SVR4 では置き換える必要はない。フラグ、M_NOSUBM_GRPIDM_MULTI の機能は、<sys/mount.h> に定義があり、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。

SunOS 4.x の mount() は、SunOS 5.6、ABI、SVID、または SVR4 によって返されない errno 値、ENODEVEACCESEMFILEENOMEM を使用する。

 

C# 

C# 

C# 

mprotect()(2)

 

msgctl()(2)

 

msgget()(2)

 

msgrcv()(2)

 

msgsnd()(2)

 

msync()(2)

 

S# 

S# 

munmap()(2)

 

nfssvc()(2)

このインタフェースは、nfssys()(NFS_SVC,... ) ルーチンにより、SunOS 5.6 で置き換えられる。

 

open()(2V)

C# 

open() への mode 引数は、SunOS 4.x ソフトウェアでは int 型で、SunOS 5.6、ABI、SVID、または SVR4 では mode_t 型である。SunOS 4.x では、path 引数が空の文字列ならば、カーネルは、この空のパス名をカレントディレクトリ「.」にマップする。SunOS 5.6、ABI、SVID、または SVR4 では、path が空の文字列を指す場合、エラーが発生する。SunOS 4.x では、O_NDELAY または O_NONBLOCK フラグがオープンするコールに設定されると、open() コール自身だけが有効にされる。SunOS 5.6、ABI、SVID、または SVR4 では、O_NDELAY または O_NONBLOCK フラグが open() へのコールに設定されると、そのファイル記述子に同等のフラグが設定され、その記述子への次の読み書きはブロックされない。

また、SunOS 5.6、ABI、SVID、SVR4 では <sys/types.h><sys/stat.h> に含まれるが、SunOS 4.x では含まれない。

errnoEOPNOTSUPP は、SunOS 4.x の open() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では返されない。

 

C# 

C# 

C# 

open()(2V) -SysV

S# 

errnoEOPNOTSUPP は、SunOS 4.x の open() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では返されない。

S# 

S# 

S# 

pathconf()(2V) -SysV

 

pipe()(2V) -SysV

 

poll()(2)

 

profil()(2)

 

ptrace()(2)

C# 

SunOS 4.x の ptrace() へのオプションの addr2 引数は、SunOS 5.6 ルーチンではサポートされない。ptrace() への要求引数は、SunOS 4.x では enum ptracereq 型で、SunOS 5.6 では int() 型。ptrace() への pid 引数は、SunOS 4.x では int() 型で、SunOS 5.6 では pid_t() 型。

また、SunOS 4.x では <sys/types.h> に含まれるが、SunOS 5.6 では <signal.h><sys/ptrace.h>、および <sys/wait.h> に含まれる。

errno フラグの EPERM は、SunOS 4.x の ptrace()) には有効だが、SunOS 5.6 では無効。

有効な request 値に関する情報については、ptrace() 要求値」を参照のこと。

C# 

C# 

C# 

putmsg()(2)

 

quotactl()(2)

Q_QUOTACTL ioctl() が同様の機能を提供する。

システムコールのリファレンス (R, S, T, U, V)

表 B-3

SunOS 4.x システムコール 

SunOS 5.6  

注 

ABI 

SVID 

SVR4 

BSD 

read()(2V)

C# 

errno フラグの EISDIREWOULDBLOCK は、SunOS 4.x の read() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。

C# 

C# 

C# 

read()(2V) -SysV

C# 

read()nbyte 引数は、SunOS 4.x では int() 型で、SunOS 5.6 では unsigned() 型である。

SunOS 5.6 の read() は、(FIONBIO ioctl() 要求、あるいは <sys/file.h> から FNDELAY フラグまたは 4.x BSD 環境の <fcntl.h> から O_NDELAY フラグを使った fcntl(2V)() へのコールがある) BSD 4.2 スタイル非ブロック I/O を、SunOS 4.x の read() ルーチンのようにはサポートしない。

errno フラグの EISDIREWOULDBLOCK は、SunOS 4.x の read() には有効だが、SunOS 5.6 では無効。

C# 

C# 

C# 

readlink()(2)

 

readv()(2)

C# 

errno フラグの EISDIREWOULDBLOCKは、SunOS 4.x には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。

C# 

C# 

C# 

readv()(2V) -SysV

C# 

SunOS 4.x、SunOS 5.6、SVID または SVR4 の (<sys/uio.h> に定義がある) iovec 構造体はわずかに異なる。SunOS 4.x の ioveciov_len フィールドは、integer として定義されるが、SunOS 5.6、SVID または SVR4 の iov_lenunsigned として定義される。 SunOS 5.6、SVID または SVR4 の readv() システムコールは、BSD 4.2 スタイルの非ブロック I/O を、SunOS 4.x のようにはサポートしない。

C# 

C# 

C# 

reboot()(2)

現在は reboot()(3C)uadmin()(2) が同様の機能を提供する。

recv()(2)

現在は recv()(3N)

recvfrom()(2)

現在は recvfrom()(3N)

recvmsg()(2)

現在は recvmsg()(3N)

rename()(2V) -SysV

S# 

SunOS 5.6、ABI、SVID、または SVR4 では <unistd.h> に含まれるが、SunOS 4.x では含まれない。errno フラグ ENOTEMPTY は、SunOS 4.x の rename() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。 SunOS 5.6、ABI、SVID、または SVR4 は、そのかわりにフラグ EEXIST に対して errno を設定する。

S# 

S# 

S# 

rmdir()(2V) -SysV

S# 

SunOS 5.6、ABI、SVID、または SVR4 では <unistd.h> に含まれるが、SunOS 4.x では含まれない。errno フラグ ENOTEMPTY は、SunOS 4.x の rmdir() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。 SunOS 5.6、ABI、SVID、または SVR4 は、そのかわりにフラグ EEXIST に対して errno を設定する。

S# 

S# 

S# 

sbrk()(2)

 

select()(2)

現在は select()(3C)

semctl()(2)

 

semget()(2)

 

semop()(2)

 

send()(2)

S# 

現在は send()(3N)

errno フラグの ENOBUFS は、SunOS 4.x の send()(2) には有効だが、SVR4、および SunOS 5.6 では無効。

S# 

sendmsg(2)()

S# 

現在は sendmsg()(3N)

errno フラグの ENOBUFS は、SunOS 4.x の sendmsg()(2) には有効だが、SVR4 と SunOS 5.6 では無効。

S# 

sendto()(2)

S# 

現在は sendto()(3N)

errno フラグの ENOBUFS は、SunOS 4.x の sendto()(2) には有効だが、SVR4 と SunOS 5.6 では無効。

S# 

setaudit()(2)

 

setauid() (2)

 

setdomainname()(2)

sysinfo()(2) が同様の機能を提供する。

setgroups()(2V)

SunOS 4.x では、gidset 引数は int 型で、SunOS 5.6、ABI、SVID、または SVR4 では、gidset 引数は gid_t 型になっている。また、SunOS 5.6、ABI、SVID、または SVR4 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。

setgroups()(2V) -SysV

 

sethostname()(2)

現在は sethostname()(3C)sysinfo()(2) のコマンド引数を SI_SET_HOSTNAME に設定すると、同様の機能を提供する。

setitimer()(2)

 

setpgid()(2V) -SysV

 

setpgrp() (2V)

SunOS 4.x の setpgrp() には引数 pidpgrp があり、setpgrp() はプロセスグループを pid によって示されるプロセスの pgrp に設定する。SunOS 5.6 の setpgrp() は引数を受け付けず、setpgrp() は新しいセッションも作成する。ただし、pgrp がゼロであり、pid が呼び出し元プロセスを参照すると、SunOS 4.x の setpgrp() コールは引数なしの SunOS 5.6 の setpgrp() コールと同じになる。また、SunOS 4.x の setpgrp()int 型の値を返すが、SunOS 5.6 では、setpgrp()pid_t 型の値を返す。さらに、SunOS 5.6 では <unistd.h><sys/types.h> に含まれるが、SunOS 4.x では含まれない。errno フラグの EACCESEINVALESRCH は、SunOS 4.x の setpgrp() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。

()

C# 

C# 

C# 

setpgrp()(2V) -SysV

errno フラグの EACCESEINVALESRCH は SunOS 4.x の setpgrp()(2V) には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。

setpriority()(2)

現在は setpriority()(3C)priocntl()(2) が同様の機能を提供する。

setregid()(2)

現在は setregid()(3C)

setreuid()(2)

現在は setreuid()(3C)

setrlimit() (2)

現在は setrlimit()(2)

setsid()(2V) -SysV

 

setsockopt()(2)

現在は setsockopt()(2)

settimeofday() (2)

現在は settimeofday()(2)

setuseraudit()(2)

 

sgetl()(2)

現在は xdr_simple()(3N)

shmat()(2)

 

shmctl()(2)

 

shmdt()(2)

 

shmget()(2)

 

shutdown()(2)

現在は shutdown()(3N)

sigaction()(2)

Solaris 7 には SA_RESTART というフラグがある。このフラグを使用すると、このシグナルのハンドラの実行により割り込みされる関数がシステムにより透過的に再起動される。

sigblock()(2)

how 引数を SIG_BLOCK に設定した sigprocmask()(2) が同様の機能を提供する。

sigmask() (2)

sigsetops()(3C) ルーチンは、SunOS 5.6、ABI、SVID、または SVR4 が同様の機能を提供する。

sigpause()(2V) -SysV

SunOS 4.x の sigpause() は、その引数 (sigmask) をマスクされたシグナルのセットに代入するが、ABI と SVID の sigpause() は、その引数 (sig) を呼び出し元プロセスのシグナルマスクから削除する。SVR4 と SunOS 5.6 の sigpause() は、SunOS 4.x の sigpause()(2) と互換性がある。

sigpending()(2V) -SysV

 

sigprocmask()(2V) -SysV

 

sigsetmask()(2)

how 引数を SIG_SETMASK に設定した sigprocmask()(2) ルーチンは、SunOS 5.6、ABI、SVID、または SVR4 が同様の機能を提供する。

sigstack()(2)

現在は sigstack()(3C)sigaltstack(2)() が同様の機能を提供する。

sigsuspend()(2V) -SysV

 

sigvec()(2)

sigaction()(2) が同様の機能を提供する。

socket()(2)

C# 

現在は socket()(3N)

SunOS 4.x では、PF_IMPIPNK はサポートされた domain だが、SVR4 と SunOS 5.6 では PF_IMPIPNK はサポートされない。errno フラグの ENOBUFSEPROTOTYPE は、SunOS 4.x の socket() には有効だが、SVR4 と SunOS 5.6 では無効。

C# 

socketpair()(2)

現在は socketpair()(3N)

sputl()(2)

現在は xdr_simple()(3N)

stat()(2V) -SysV

 

statfs()(2)

statvfs()(2) が同様の機能を提供する。

swapon()(2)

swapctl()(2) が同様の機能を提供する。

symlink()(2)

 

sync()(2)

 

syscall()(2)

 

sysconf()(2V) -SysV

現在は sysconf()(3C)

tell()(2V) -SysV

 

truncate()(2)

現在は truncate()(23C)

umask(2V) -SysV()

シンボリックアクセスモード (<sys/stat.h>) の S_IREAD (00400)、S_IWRITE (00200)、S_IEXEC (00100) は、SunOS 4.x の umask() によってサポートされるが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。ただし、同等の SunOS 5.6、ABI、SVID、または SVR4 シンボリックアクセスモードである S_IRUSR (00400)、S_IWUSR (00200)、S_IXUSR (00100) には同じ定義があり、SunOS 4.x の <sys/stat.h> にも定義があるため、使用することができる。

umount()(2V) -SysV

 

uname()(2V) -SysV

 

unlink()(2V) -SysV

 

unmount()(2)

umount()(2) が同様の機能を提供する。

ustat()(2)

 

utimes()(2)

 

vadvise()(2)

 

vfork()(2)

 

vhangup()(2)

 

システムコールのリファレンス (W)

表 B-4

SunOS 4.x システムコール 

SunOS 5.6  

注 

ABI 

SVID 

SVR4 

BSD 

WEXITSTATUS()(2)

union wait は、SunOS 4.x でサポートされていたが、SVR4 および SunOS 5.6 ではサポートされない。

WIFEXITED()(2)

union wait は、SunOS 4.x でサポートされていたが、SVR4 および SunOS 5.6 ではサポートされない。

WIFSIGNALED()(2)

union wait は、SunOS 4.x でサポートされていたが、SVR4 および SunOS 5.6 ではサポートされない。

WIFSTOPPED() (2)

union wait は、SunOS 4.x でサポートされていたが、SVR4 および SunOS 5.6 ではサポートされない。

WSTOPSIG()(2)

union wait は、SunOS 4.x でサポートされていたが、SVR4 および SunOS 5.6 ではサポートされない。

WTERMSIG()(2)

union wait は、SunOS 4.x でサポートされていたが、SVR4 および SunOS 5.6 ではサポートされない。

wait()(2V)

SunOS 4.x では、wait()int 型の値を返す。SunOS 5.6、ABI、SVID、または SVR4 では、wait()pid_t 型の値を返す。また、SunOS 5.6、ABI、SVID、SVR4 では <sys/types.h> に含まれるが、SunOS 4.x では含まれない。union wait は、以前の SunOS との下位互換性のために SunOS 4.x でサポートされていたが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。SunOS 4.x では、wait() は、SV_INTERRUPT ビットがそのシグナル用のフラグに設定されない限り、終了を待つ間にプロセスがシグナルを受け付けると自動的に再起動される。SunOS 5.6、ABI、SVID、または SVR4 では、wait() は、シグナルが受け付けられると途中で戻る。

wait()(2V) -SysV

union wait は、SunOS 4.x でサポートされていたが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。SunOS 4.x では、wait()(2V) は、 SV_INTERRUPT ビットがそのシグナル用のフラグに設定されない限り、終了を待つ間にプロセスがシグナルを受け付けると自動的に再起動される。SunOS 5.6、ABI、SVID、または SVR4 では、wait()(2) は、シグナルが受け付けられると途中で戻る。

wait3()(2V)

現在は wait3()(3C)wait()(2)waitpid()(2) が同様の機能を提供する。

wait4()(2V)

現在は wait4()(3C)wait()(2)waitpid()(2) が同様の機能を提供する。

waitpid()(2V)

SunOS 4.x では、waitpid()int 型の値を返す。SunOS 5.6、ABI、SVID、または SVR4 では、waitpid()pid_t 型の値を返す。 waitpid()pid 引数は、SunOS 4.x では int 型で、SunOS 5.6、ABI、SVID、または SVR4 では pid_t 型となっている。また、SunOS 5.6、ABI、SVID、SVR4 では <sys/types.h> に含まれるが、SunOS 4.x では含まれない。union wait は、以前の SunOS との下位互換性のために SunOS 4.x でサポートされていたが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。SunOS 4.x では、waitpid() は、SV_INTERRUPT ビットがそのシグナル用のフラグに設定されない限り、終了を待つ間にプロセスがシグナルを受け付けると自動的に再起動される。SunOS 5.6、ABI、SVID、または SVR4 では、waitpid() は、シグナルが受け付けられると途中で戻る。

waitpid()(2V) -SysV

union wait は、SunOS 4.x でサポートされていたが、SunOS 5.6、ABI、SVID、または SVR4 ではサポートされない。SunOS 4.x では、waitpid()(2V) は、SV_INTERRUPT ビットがそのシグナル用のフラグに設定されない限り、終了を待つ間にプロセスがシグナルを受け付けると自動的に再起動される。SunOS リリース 5.6、ABI、SVID、または SVR4 では、waitpid()(2) は、シグナルが受け付けられると途中で戻る。

write()(2V)

C# 

SunOS 4.x ソフトウェアでは、記述子の参照が非ブロック I/O の場合、ioctl()FIONBIO 要求を使用するか、FNDELAYO_NDELAY フラグのセットのため fcntl() を使用することにより、write()-1 を返して errnoEWOULDBLOCK を設定する。

SunOS 5.6 ソフトウェアでは、通常ファイルへの write() では、O_NDELAY または O_NONBLOCK が設定されていれば、write()-1 を返して errnoEAGAIN を設定する。

O_NONBLOCK または O_NDELAY が設定されているパイプまたは FIFO への write() 要求では、write() はプロセスをブロックしない。プロセスをブロックしないで書き込むことができるデータがある場合、write() は書き込みできるものを書き込み、書き込まれたバイト数を返す。それ以外の場合は、O_NONBLOCK が設定されると -1 を戻して errnoEAGAIN を設定し、O_NDELAY が設定されると 0 を返す。O_NDELAY が設定されると、{ PIPE_BUF} またはそれ以下のバイト数の write() 要求は、完全に正常終了して nbytes を返すか、または 0 を返す。

{PIPE_BUF} バイトより大きな write() 要求は、転送できるものを転送して書き込まれたバイト数を返すか、またはデータを転送しないで 0 を返す。また、要求が {PIPE_BUF} バイトよりも大きく、以前にパイプに書き込まれたデータがすべて読み出されている場合、write() は少なくとも {PIPE_BUF} バイトを転送する。SunOS 5.6 の write() ルーチンは、4.2 BSD スタイルの非ブロック I/O をサポートしない。

 

errno フラグの EWOULDBLOCK は、SunOS 4.x の write() には有効だが、SunOS 5.6 では無効。

C# 

C# 

C# 

write()(2V) -SysV

C# 

SunOS 5.6、ABI、SVID、または SVR4 の write() は、4.2 BSD スタイルの非ブロック I/O をサポートしない。errno フラグの EWOULDBLOCK は、SunOS 4.x の write() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。

C# 

C# 

C# 

writev()(2V)

C# 

SunOS 5.6、ABI、SVID、または SVR4 の writev() は、4.2 BSD スタイルの非ブロック I/O をサポートしない。errno フラグの EWOULDBLOCK は、SunOS 4.x の writev() には有効だが、SunOS 5.6、ABI、SVID、または SVR4 では無効。

C# 

C# 

C#